배열의 filter 메소드는
모든 배열의 요소 중에서 특정 조건을 만족하는 요소를 걸러내는 메소드이다.
여기서 걸러내는 기준이 되는 특정 조건은 filter 메소드의 인자로 전달된다.
이때 전달되는 조건은 함수의 형태라는 것을 명심하자!
걸러내기 위한 조건을 명시한 함수를 인자로 받기 때문에 고차함수로 불린다.
의미를 이해하기 위한 예제
let arr = [1, 2, 3, 4]; let output = arr.filter(짝수를 걸러내기 위한 함수식); console.log(output); // ->> [2, 4] <br> arr = ['hello', 'cho', 'coding', 'happy', 'hacking']; output = arr.filter(길이 5 이하를 걸러내기 위한 함수식) console.log(output); // ->> ['hello', 'cho', 'happy']
실제 예제
function isEven(arr) { return arr.filter(function(el) { return el % 2 === 0 }) } // isDouble([1, 2, 3, 4]) // [2, 4]
배열의 map 메소드는
모든 배열의 요소에 동일한 행동을 준 값에 대하여 반환하는 메소드이다.
의미를 이해하기 위한 예제
let arr = [1, 2, 3, 4]; let output = arr.map(모든 요소에 X2); console.log(output); // ->> [2, 4, 6, 8]
실제 예제
function isDouble(arr) { return arr.map(function(el) { return el * 2 }) } // isDouble([1, 2, 3, 4]) // [2, 4, 6, 8]
배열의 reduce 메소드는
모든 배열의 여러 데이터를 하나의 데이터로 응축할 때 사용한다.
의미를 이해하기 위한 예제
let arr = [1, 2, 3]; let output = arr.reduce(모든 요소의 누적 합계); console.log(output); // ->> 6 <br> let arr1 = [1, 2, 3]; let arr2 = [4, 5, 6] let output = arr.reduce(두 배열의 합체); console.log(output); // ->> [1, 2, 3, 4, 5, 6]
실제 예제
function isSum(arr) { return arr.reduce(function(acc, cur) { return acc + cur; }) } // isDouble([1, 2, 3, 4]) // 10
reduce 메소드의 콜백함수의 인자는 초기값(acc)과 현재값(cur)으로 설정해준다.
초기값을 따로 설정해주지 않으면 전달받은 배열의 첫번째 요소가 초기값으로 정해진다.