首页 > 建站教程 > JS、jQ、TS >  利用js reduce方法去除数组中的重复项正文

利用js reduce方法去除数组中的重复项

    js的reduce有点类似于递归,对数组进行循环计算,最终得到想要的效果,可以想见:js reduce详解
    下面的方法是我爱模板网在做项目时,遇到数组去重,从网上“剽窃”的一个方法,利用了js reduce巧妙地去重:
    假设有一组包含对象的数组:
var arr = [{name:'张飞2'},{name:'张飞2'},{name:'张飞2'},{name:'张飞2'},{name:'李飞5'},{name:'李飞6'},{name:'李飞7'}]
     里面有多个重复项,要将这些重复项都去除:
function unique(params,arr) {
    let obj = {}
    arr = arr.reduce((item, next) => {
       	obj[next[params]] ? '' : obj[next[params]] = true && item.push(next);
        return item;
    },[])
    return arr;
}

console.log(unique('name',arr)); //[{name:'张飞2'},{name:'李飞5'},{name:'李飞6'},{name:'李飞7'}]