美文网首页
对象数组去重的简便方法reduce()

对象数组去重的简便方法reduce()

作者: zsyyyyy | 来源:发表于2021-02-22 21:44 被阅读0次
            //array1.reduce(callbackfn[, initialValue])
            // 
            //array1       必需。一个数组对象。
            //callbackfn 必需。一个接受最多四个参数的函数。
            //nitialValue 可选。如果指定 initialValue,则它将用作初始值来启动累积。
            // 
            //返回值
            //通过最后一次调用回调函数获得的累积结果。
    
            function arraryRepeat(arr, name) {
                var hash = {};
                return arr.reduce(function(item, next) {
                     //item 为之前的计算结果,next为数组的各项值
                    //如item 初始值[], reduce一开始接收了[]空数组
                    //next为 当前元素 循环数组的每一项
                    console.log('item', item);
                    console.log('next', next);
                    console.log('next[name]', next[name]);
                    
                    console.log('hash', hash[next[name]]);
                    
                    console.log('Boolean', Boolean(hash[next[name]]));
                    
                    hash[next[name]] ? "" : (hash[next[name]] = true && item.push(next));
                    return item;
                }, []);
            };
    
            console.log(arraryRepeat([{
                    name: 1,
                    id: 1
                },
                {
                    name: 2,
                    id: 1
                },
                {
                    name: 3,
                    id: 3
                },
                {
                    name: 4,
                    id: 4
                },
                {
                    name: 5,
                    id: 5
                }
            ], 'id'))

    相关文章

      网友评论

          本文标题:对象数组去重的简便方法reduce()

          本文链接:https://www.haomeiwen.com/subject/sexlfltx.html