[JavaScript] filter(), map(), reduce() 메소드

Tai Song·2022년 5월 24일
0

JavaScript

목록 보기
2/4

MDN 문서 확인하기 map() filter() reduce()

filter()

filter() 메서드는 주어진 함수의 테스트를 통과하는 모든 요소를 모아 새로운 배열로 반환합니다.

let fruits = ['apple', 'banana', 'grapes', 'mango', 'orange'];

/**
 * 검색 조건에 따른 배열 필터링(쿼리)
 */
function filterItems(query) {
  return fruits.filter(function(el) {
      return el.toLowerCase().indexOf(query.toLowerCase()) > -1;
  })
}

console.log(filterItems('ap')); // ['apple', 'grapes']
console.log(filterItems('an')); // ['banana', 'mango', 'orange']

map()

map() 메서드는 배열 내의 모든 요소 각각에 대하여 주어진 함수를 호출한 결과를 모아 새로운 배열을 반환합니다.

let kvArray = [{key:1, value:10},
               {key:2, value:20},
               {key:3, value: 30}];

let reformattedArray = kvArray.map(function(obj){
   let rObj = {};
   rObj[obj.key] = obj.value;
   return rObj;
});

reduce()

reduce() 메서드는 배열의 각 요소에 대해 주어진 리듀서(reducer) 함수를 실행하고, 하나의 결과값을 반환합니다.

let arr = [1, 2, 1, 2, 3, 5, 4, 5, 3, 4, 4, 4, 4];
let result = arr.sort().reduce((accumulator, current) => {
    const length = accumulator.length
    if (length === 0 || accumulator[length - 1] !== current) {
        accumulator.push(current);
    }
    return accumulator;
}, []);
console.log(result); //[1,2,3,4,5]
  • reduce() 메소드로 2차원 배열을 1차원 배열로 만들 수 있다.
let newArr = arr.reduce((first, next) => first.concat(next));
profile
Read The Fucking MDN

0개의 댓글