javascript reduce () 의 용법

2197 단어
reduce 의 용법 을 다시 보다.Array 의 reduce () 는 하나의 함 수 를 이 Array 의 [x1, x2, x3...] 에 작용 합 니 다. 이 함 수 는 두 개의 매개 변 수 를 받 아야 합 니 다. reduce () 는 결 과 를 계속 서열 의 다음 요 소 를 누적 계산 해 야 합 니 다. 그 효 과 는 다음 과 같 습 니 다.
[x1, x2, x3, x4].reduce(f) = f(f(f(x1, x2), x3), x4)

예 를 들 어 하나의 Array 에 대해 화 해 를 구하 면 reduce 로 실현 할 수 있다.
var arr = [1, 3, 5, 7, 9];
arr.reduce(function (x, y) {
    return x + y;
}); // 25

문법: arr.reduce(fn(pre,cur,arr){},[initialValue]) 일부 묘 용: 모든 문자 가 나타 난 횟수 를 통계 합 니 다.
/ / 방법 1:
 var obj=Array.prototype.reduce.call(str,function(pre,cur){
        pre[cur]?pre[cur]++:pre[cur]=1;
        return pre;
    },{});
    console.log(obj);
    //{a: 4, b: 1, c: 3, d: 3, e: 3, …}

/ / 방법 2:
var obj=str.split('').reduce(function(pre,cur){
    pre[cur]?pre[cur]++:pre[cur]=1;
    return pre;
},{})
console.log(obj);
 //{a: 4, b: 1, c: 3, d: 3, e: 3, …}

누적
var arr=[1,2,3,4,5,6];
var sum=arr.reduce(function(pre,cur,index,arr){
    console.log(index);//      
    return pre+cur;
});
console.log(sum);//21

add () (1, 2) (3, 4) (7, 8, 9) () 실현
function add(){
        var sum=0;
        function inner(pre,cur){
            return pre+cur;
        }
        sum=Array.prototype.slice.call(arguments).reduce(inner,sum);
        return function(){
            if(arguments.length==0){
                return sum;
            }else{
                sum=Array.prototype.slice.call(arguments).reduce(inner,sum);
                return arguments.callee;
            }
        }

    }
    console.log(add()(1)(2,3)());//6

reduce 작업 대상 은 두 번 째 매개 변 수 를 통 해 초기 값 작업 대상 의 단일 속성 을 지정 할 수 있 습 니 다.
 var result = [
        {
            subject: 'math',
            score: 88
        },
        {
            subject: 'chinese',
            score: 95
        },
        {
            subject: 'english',
            score: 80
        }
    ];
    var totalScore=result.reduce(function (pre,cur) {
        return pre+cur.score;
    },0);
    console.log(totalScore);

좋은 웹페이지 즐겨찾기