jsreduce方法

74 阅读1分钟
 ```js
// 计算每个元素出现的次数 利用reduce  逼格更高一些
 let arr = ['zhou', 'zhou', 'zhi', 'zhi', 'zhou', 'zhi', 'hu'];
    let sum = arr.reduce((pre, cur) => {
        // console.log(pre, cur);
        if (cur in pre) {
            pre[cur]++;
        } else {
            pre[cur] = 1;
        }
        return pre;
    }, {});
    console.log(sum);
    // 数组去重
    let arr1 = [1, 2, 3, 4, 5, 6, 5, 4, 3, 4, 5, 4, 56, 2]
    let result = arr1.reduce((pre, cur) => {
        if (!pre.includes(cur)) {
            return pre.concat(cur)
        } else {
            return pre;
        }
    }, [])
    console.log(result);
    // 对数组对象中的某一属性值求和
    let result1 = [{
            subject: 'math',
            score: 10
        },
        {
            subject: 'chinese',
            score: 20
        },
        {
            subject: 'english',
            score: 30
        }
    ];

    var sum1 = result1.reduce(function (prev, cur) {
        return cur.score + prev;
    }, 0);
    console.log(sum1) //60