1. 程式人生 > >ES6 陣列內物件去重

ES6 陣列內物件去重

去重Set

const arr = ['張三','張三','三張三']
let set = new Set(arr); // set 自帶去重
// Set { '張三', '三張三' }
console.log(set);
console.error(Array.from(set)); // [ '張三', '三張三' ]
  •  

去重reduce

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));

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