알고리즘

[JavaScript] map, reduce 함수

HSHyeon 2024. 3. 9. 21:49
1. for문 대신 map

var answer = [...my_string].map(v => v.repeat(n)).join("");

const newMyArr = myArr.map((currentElement, index, array) => {
    console.log(요소: ${currentElement});
    console.log(index: ${index});
    return currentElement * 2
});
  1. reduce 메소드
  2. .reduce((acc, curr) => acc + Number(curr), 0);

reduce 메서드는 배열을 객체로 바꾸는것도 가능하게 한다.

['철수', '영희', '현영', '한솔'].reduce((a, c, i) => {a[i] = c; return a}, {})
// a : {}, c : '철수', i : 0
// a : {0 : 철수} , c : '영희', i : 1
// a : {0 : '철수', 1 : '영희'}, c : '현영', i : 2
// a : {0 : '철수', 1 : '영희', 2 : '현영'}, c : '한솔', i : 3
//return => {0 : '철수', 1 : '영희', 2 : '현영', 3 : '한솔'}

reduce 메서드를 활용해서 아래의 항목들을 구현할 수 있다.

  • 평균 구하기
  • 최대값 구하기
  • 요소의 중복 횟수 구하기
  • 중첩 배열의 평탄화 (Array.prototype.flat 메서드를 사용하는 것이 직관적)
  • 중복 요소 제거 (Array.prototype.filter 메서드를 사용하는 것이 직관적, Set 사용하는것도 좋다.)