reduce()函数用法(去重和分类)

    // reduce()函数的应用
            var people = [{
                    name: 'Alice',
                    age: 21
                },
                {
                    name: 'Max',
                    age: 20
                },
                {
                    name: 'Jane',
                    age: 20
                },
                {
                    name: 'Jane',
                    age: 47
                },
                {
                    name: 'li',
                    age: 20
                },
                {
                    name: 'wang',
                    age: 18
                },
                {
                    name: 'wang',
                    age: 20
                },
            ];
            // 根据数组对象中的某一属性分组
            var gg = people.reduce((calc, item) => {
                if (!calc[item.age]) {
                    calc[item.age] = [];
                }
                calc[item.age].push(item)

                return calc
            }, {})
            console.log('11111111111', gg)
            // 数组对象去重
            var hash={};
            var p = people.reduce((calc,item) => {
                if(!hash[item['name']]){
                    hash[item['name']] = true;
                    calc.push(item)
                }
                return calc;
            },[])
            console.log('数组对象去重',p)

// 封装数组对象根据某一属性分类的方法
            function sortMyarr(arr,proper){
                
                return arr.reduce((calc,currentitem) => {
                    // var key = currentitem[proper];
                    var key = currentitem[proper];
                    if(!calc[key]){
                        calc[key] = [];
                    }
                    calc[key].push(currentitem)
                    
                    return calc;
                },{})
            }
            console.log('分类封装',sortMyarr(people,'name'))
原文地址:https://www.cnblogs.com/lxsunny/p/15011890.html