-
[Error / JS] .push is not a functionErrors 2022. 12. 20. 14:36반응형
s.split('').reduce((acc, cur, idx) => { return acc.push(cur) }, [])
위 코드에서 내가 의도한 동작은 acc에 각 원소를 추가해 s와 동일한 배열을 반환하는 것이다. 하지만 실제로 코드를 실행시켜 보면 "acc.push is not a function"이란 에러가 발생한다. 그 이유는 .push()가 원본 배열에 값을 추가하고 그 길이를 반환하기 때문에 반복의 첫번째 구간에선 함수를 적용한 대상이 배열이므로 정상 동작하지만 두번째 그 대상이 숫자가 되기 때문이다. 따라서 위 코드가 정상적으로 동작하기 위해선 아래와 같이 수정해야 한다.
s.split('').reduce((acc, cur, idx) => { acc.push(cur) return acc }, [])
반응형'Errors' 카테고리의 다른 글