Reputation: 161
let config = [{
name: 1,
state: 1,
output: 'Y',
}, {
name: 2,
state: 1,
output: 'A',
}, {
name: 1,
state: 100,
output: 'Y',
}, {
name: 2,
state: 100,
output: 'A',
}];
function unique(arr) {
const res = new Map();
return arr.filter((a) => !res.has(a.name) && res.set(a.name, 1))
}
console.log(unique(config))
It is reserved first, deleted behind,
But I need the behind, not the first.
how do I let it to keep behind and delete the first?
Upvotes: 0
Views: 69
Reputation: 1
A combination of Object.values
with Array#reduce
let config = [{
name: 1,
state: 1,
output: 'Y',
}, {
name: 2,
state: 1,
output: 'A',
}, {
name: 1,
state: 100,
output: 'Y',
}, {
name: 2,
state: 100,
output: 'A',
}];
let result = Object.values(config.reduce((acc, item) => (acc[item.name] = item, acc), {}));
console.log(result);
Upvotes: 1