JS 수조 reduce() 방법 원리 및 사용 기교 해석
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
이상은 본문의 전체 내용입니다. 여러분의 학습에 도움이 되고 저희를 많이 응원해 주십시오.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JS 판단 수조 네 가지 실현 방법 상세그러면 본고는 주로 몇 가지 판단 방식과 방식 판단의 원리를 바탕으로 문제가 있는지 토론하고자 한다. 예를 들어 html에 여러 개의 iframe 대상이 있으면 instanceof의 검증 결과가 기대에 부합되지 않을...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.