ES6 陣列內物件去重
阿新 • • 發佈:2018-11-28
去重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"}]