美文网首页
根据数组id,去重

根据数组id,去重

作者: 逸笛 | 来源:发表于2019-12-17 11:34 被阅读0次
    const data = [
                { id: 1, name: ‘张三’, age: 15, },
                { id: 2, name: ‘John’, age: 18, },
                { id: 3, name: ‘李四’, age: 18, },
                { id: 1, name: ‘张三’, age: 15, },
                { id: 4, name: ‘Jack’, age: 18, },
                { id: 5, name: ‘王五’, age: 10, },
                { id: 4, name: ‘Jack’, age: 18, },
                { id: 2, name: ‘John’, age: 18, },
            ];
    
    let hash = {}; 
    const data2 = data.reduce((preVal, curVal) => {
        hash[curVal.id] ? ” : hash[curVal.id] = true && preVal.push(curVal); 
        return preVal 
    }, [])
    

    解析:reduce() 方法接收一个函数作为累加器(accumulator),数组中的每个值(从左到右)开始缩减,最终为一个值。

    reduce 为数组中的每一个元素依次执行回调函数,不包括数组中被删除或从未被赋值的元素,接受四个参数:初始值(或者上一次回调函数的返回值),当前元素值,当前索引,调用 reduce 的数组。

    语法:

    arr.reduce(callback,[initialValue])
    
    callback (执行数组中每个值的函数,包含四个参数)
        previousValue (上一次调用回调返回的值,或者是提供的初始值(initialValue))
        currentValue (数组中当前被处理的元素)
        index (当前元素在数组中的索引)
        array (调用 reduce 的数组)
    initialValue (作为第一次调用 callback 的第一个参数。)
    

    相关文章

      网友评论

          本文标题:根据数组id,去重

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