ES6数组去重

1.针对基本类型数组

const arr = ['张三','张三','三张三']

let set = new Set(arr); // set 自带去重 

console.log(set); // Set { '张三', '三张三' }

console.error(Array.from(set)); // [ '张三', '三张三' ]

2.针对对象数组

let hash = {};
let config = [{
    name: 2,
    state: true,
    output: 'Y'
}, {
    name: 3,
    state: true,
    output: 'A'
}, {
    name: 5,
    state: true,
    output: 'S'
}, {
    name: 7,
    state: true,
    output: 'B'
}];

config = [...config, {
    name: 3,
    state: false,
    output: 'A'
}]
const newArr = config.reduceRight((item, next) => {
    hash[next.name] ? '' : hash[next.name] = true && item.push(next);
    return item
}, []);

console.log(JSON.stringify(newArr))

 

config数组的打印结果为:

去重后的结果如下:

 [{"name":3,"state":false,"output":"A"},{"name":7,"state":true,"output":"B"},{"name":5,"state":true,"output":"S"},{"name":2,"state":true,"output":"Y"}]

 

posted @ 2018-08-09 13:59  码农新手,快乐编码  阅读(466)  评论(0)    收藏  举报