-
Array.prototype.map()의 세번째 파라미터DEV/Javascript 2021. 5. 3. 11:56
developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map
callback
Function that is called for every element of arr. Each time callback executes, the returned value is added to newArray.The callback function accepts the following arguments:
currentValue: The current element being processed in the array.
index(Optional): The index of the current element being processed in the array.
array(Optional): The array map was called upon.오늘 Udacity에서 함수형 프로그래밍 강의를 보다가 알게 되었다. 습관적으로 Array.prototype.map()을 사용할 때 파라미터로 현재 값(currentValue)와 옵셔널 인덱스 값만 사용했는데, 세번째 파라미터로 map이 호출되는 배열 자체도 받을 수 있다는 것을...! 🤭이렇게 하면 다음과 같이 1차원 배열에서 2차원 배열을 만드는 것도 손쉽게 가능하다.
const arr = [1, 2, 3, 4] const arr_2d = arr.map((val, i, originalArr) => originalArr) console.log(arr_2d); // [[1,2,3,4], [1,2,3,4], [1,2,3,4], [1,2,3,4]]]
분명 업무에서도 이렇게 해서 더 쉽게 만들 수 있는 코드가 있었을텐데! 지금이라도 알아서 다행이다. Array.prototype.filter(), Array.prototype.reduce()에서도 마찬가지 방법으로 원본 배열에 접근할 수 있다.