map은 돌지 않는다.

jw3215·2023년 11월 30일
0

js의 Array 메서드인 map. 보조함수를 인자로 받아. 새로운 배열을 만드는 메서드다. map 메서드 내에서 console.log로 값을 출력하면 순차적으로 콘솔에 찍히기 때문에, for문 처럼 배열을 순회한다고 생각하기 쉽다. 하지만 나는 이건 implemetation detail일 뿐이라고 생각한다. 보조함수가 순차적으로 실행되건, 거꾸로 실행되건, 심지어 무작위로 실행되더라도 프로그램 동작에는 차이가 없어야 하는데, map 메서드의 책임은 어떤 배열에서 새로운 배열을 만드는 것이 전부기 때문이다. 즉 map 메서드의 보조함수는 순수함수여야 하고, 순차적으로 실행되길 기대하는 side effect가 있다면 forEach 메서드를 쓰는 것이 맞다.

0개의 댓글