라이브러리

[JAVASCRIPT] arr.reduce(callback, initialValue) - 누적 연산을 수행하여 단일 값 반환




reduce() 메서드란?


JavaScript의 Array.prototype.reduce() 메서드는 배열의 각 요소를 처리하여 하나의 결과값을 반환하는 메서드입니다. 이 메서드는 callback 함수를 한 번씩 호출하여 배열의 각 요소를 처리하고, 이전 결과와 현재 요소를 조합하여 새로운 결과를 반환합니다.

reduce() 메서드의 인자


reduce() 메서드는 두 개의 인자를 받습니다.

- callback: 각 요소를 처리하는 함수입니다. 이 함수는 이전 결과와 현재 요소를 인자로 받습니다.
- initialValue: 초기값입니다. callback 함수가 호출되기 전에 초기값이 필요할 때 사용됩니다.

reduce() 메서드의 사용법


reduce() 메서드는 다음과 같이 사용할 수 있습니다.

#hostingforum.kr
javascript

arr.reduce(callback, initialValue)



예제 1: 숫자의 합


#hostingforum.kr
javascript

const numbers = [1, 2, 3, 4, 5];



const sum = numbers.reduce((acc, current) => acc + current, 0);

console.log(sum); // 15



이 예제에서는 callback 함수는 `acc + current`를 반환합니다. `acc`는 이전 결과이고, `current`는 현재 요소입니다. 초기값 `0`은 callback 함수가 호출되기 전에 초기값이 필요할 때 사용됩니다.

예제 2: 문자열의 연결


#hostingforum.kr
javascript

const strings = ['Hello', ' ', 'World'];



const result = strings.reduce((acc, current) => acc + current, '');

console.log(result); // 'Hello World'



이 예제에서는 callback 함수는 `acc + current`를 반환합니다. `acc`는 이전 결과이고, `current`는 현재 요소입니다. 초기값 `''`은 callback 함수가 호출되기 전에 초기값이 필요할 때 사용됩니다.

예제 3: 객체의 합


#hostingforum.kr
javascript

const objects = [

  { name: 'John', age: 25 },

  { name: 'Jane', age: 30 },

  { name: 'Bob', age: 35 }

];



const result = objects.reduce((acc, current) => {

  acc[current.name] = current.age;

  return acc;

}, {});

console.log(result); // { John: 25, Jane: 30, Bob: 35 }



이 예제에서는 callback 함수는 `acc[current.name] = current.age`를 반환합니다. `acc`는 이전 결과이고, `current`는 현재 요소입니다. 초기값 `{}`은 callback 함수가 호출되기 전에 초기값이 필요할 때 사용됩니다.

예제 4: 배열의 중복 제거


#hostingforum.kr
javascript

const arr = [1, 2, 2, 3, 4, 4, 5];



const result = arr.reduce((acc, current) => {

  if (!acc.includes(current)) {

    acc.push(current);

  }

  return acc;

}, []);

console.log(result); // [1, 2, 3, 4, 5]



이 예제에서는 callback 함수는 `acc.includes(current)`를 반환합니다. `acc`는 이전 결과이고, `current`는 현재 요소입니다. 초기값 `[]`은 callback 함수가 호출되기 전에 초기값이 필요할 때 사용됩니다.

결론


reduce() 메서드는 배열의 각 요소를 처리하여 하나의 결과값을 반환하는 메서드입니다. 이 메서드는 callback 함수와 초기값을 인자로 받으며, callback 함수는 이전 결과와 현재 요소를 조합하여 새로운 결과를 반환합니다. reduce() 메서드는 다양한 예제를 통해 사용할 수 있으며, 배열의 합, 문자열의 연결, 객체의 합, 배열의 중복 제거와 같은 다양한 사용 사례가 있습니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 10,077건 / 1 페이지

검색

게시물 검색