LeetCode - 2665. Counter II

henu·2023년 9월 21일
0

LeetCode

목록 보기
84/186

Solution

var createCounter = function(init) {

    let ori = init

    return {
        increment: () => {
            ori += 1
            return ori
        },
        decrement: () => {
            ori -= 1
            return ori
        },
        reset: () => {
            ori = init
            return ori
        }
    }
};

Explanation

JS의 클로저에 관한 문제인 것 같다.
여기서 init의 값을 다른 변수에 담아두는 이유는 초기 init의 값을 보존하기위해서다. 담아두지 않게되면 increment, decrement 실행시 init이 계속 변하게된다. 그러면 reset실행시 초기 init을 리턴하지 못하게 된다.
초기 init값을 보존하고 다른 변수를 통해 계산을 실행시키면된다.

0개의 댓글