JS 수조 reduce() 방법 원리 및 사용 기교 해석

2376 단어 JS수조reduce
1. 문법arr.reduce(callback,[initialValue])reduce는 수조의 모든 원소가 순서대로 리셋 함수를 실행합니다. 수조에서 삭제되거나 부여되지 않은 원소를 포함하지 않습니다. 네 가지 파라미터를 받아들입니다. 초기 값(또는 이전 리셋 함수의 리셋 값), 현재 원소 값, 현재 인덱스, 리셋 호출입니다.
callback (실행 그룹의 모든 값의 함수, 네 개의 매개 변수 포함)
1,previous Value (이전 호출에서 되돌아온 값, 또는 제공된 초기 값 (initial Value)
2,currentValue(그룹에서 현재 처리된 요소)
3. index(현재 요소가 그룹에 있는 인덱스)
4,array(reduce를 호출하는 그룹)
initialValue (콜백을 처음 호출하는 첫 번째 인자로서)initial Value를 제공하지 않으면,reduce는 색인 1에서callback 방법을 실행하고 첫 번째 색인을 건너뜁니다.initialValue가 제공되면 인덱스 0부터 시작합니다.
2. Reduce의 간단한 사용법

var arr = [1, 2, 3, 4];
var sum = arr.reduce((x,y)=>x+y)
var mul = arr.reduce((x,y)=>x*y)
console.log( sum ); // ,10
console.log( mul ); // ,24
1) 배열에서 각 요소가 나타나는 횟수를 계산한다

let names = ['Alice', 'Bob', 'Tiff', 'Bruce', 'Alice'];

let nameNum = names.reduce((pre,cur)=>{
 if(cur in pre){
  pre[cur]++
 }else{
  pre[cur] = 1 
 }
 return pre
},{})
console.log(nameNum); //{Alice: 2, Bob: 1, Tiff: 1, Bruce: 1}
2) 수조 중량 제거

let arr = [1,2,3,4,4,1]
let newArr = arr.reduce((pre,cur)=>{
  if(!pre.includes(cur)){
   return pre.concat(cur)
  }else{
   return pre
  }
},[])
console.log(newArr);// [1, 2, 3, 4]
3) 2차원 그룹을 1차원으로 전환

let arr = [[0, 1], [2, 3], [4, 5]]
let newArr = arr.reduce((pre,cur)=>{
  return pre.concat(cur)
},[])
console.log(newArr); // [0, 1, 2, 3, 4, 5]
4) 다차원 그룹을 1차원으로 전환

let arr = [[0, 1], [2, 3], [4,[5,6,7]]]
const newArr = function(arr){
  return arr.reduce((pre,cur)=>pre.concat(Array.isArray(cur)?newArr(cur):cur),[])
}
console.log(newArr(arr)); //[0, 1, 2, 3, 4, 5, 6, 7]
5) 대상의 속성 구화

var result = [
  {
    subject: 'math',
    score: 10
  },
  {
    subject: 'chinese',
    score: 20
  },
  {
    subject: 'english',
    score: 30
  }
];

var sum = result.reduce(function(prev, cur) {
  return cur.score + prev;
}, 0);
console.log(sum) //60
이상은 본문의 전체 내용입니다. 여러분의 학습에 도움이 되고 저희를 많이 응원해 주십시오.

좋은 웹페이지 즐겨찾기