분류 javascript

배열관련 Map, reduce, filter 메소드

컨텐츠 정보

  • 조회 350 (작성일 )

본문

Array.map()은 제공된 변형을 기반으로 지정된 배열의 개별 값을 업데이트하고 같은 크기의 새 배열을 반환합니다.

콜백함수를 인수로 받아 들여 변환을 적용합니다.


let newArray = oldArray.map((value, index, array) => { ... }); 


for-each 루프를 거치지 않고 이 변환을 각 값에 적용하는 대신 map을 사용할 수 있습니다.

이는 각 값을 유지하지만 업데이트할 때 작동합니다. 우리는 잠재적으로 어떤 값을 제거하지 않고, 또는 새로운 출력을 계산하지 않습니다. Map을 사용하면 배열을 한 조각씩 변형할 수 있습니다.


[1, 4, 6, 14, 32, 78].map(val => val * 10) // the result is: [10, 40, 60, 140, 320, 780] 


** map : Morph Array Piece-by-piece


array.filter()은 값의 배열이 있고 그값을 다른 배열로 필터링하려고 할 때 매우 편리한 단축키입니다. 새 배열의 각 값은 특정 테스트를 통과하는 값입니다.

이것은 검색 필터처럼 작동합니다. 우리는 우리가 제공하는 매개 변수를 전달하는 값을 걸러냅니다.


[1, 4, 6, 14, 32, 78].filter(val => val > 10) // the result is: [14, 32, 78] 


원래 값의 각각을 10보다 큰 값으로 변환하면 다음과 같이됩니다.


[1, 4, 6, 14, 32, 78].map(val => val > 10) // the result is: [false, false, false, true, true, true] 


그러나 필터는 true 값만 반환합니다. 

결과가 원래 배열보다 작거나 모든 값이 특정 테스트를 통과하면 같은 크기입니다.


reduce() 메서드는 배열의 입력 값을 가져 와서 단일 값을 반환합니다.


let finalVal = oldArray.reduce((accumulator, currentValue, currentIndex, array) => { ... }), initalValue;