xxxxxxxxxx
arr.reduce((acc, current) => {
const x = acc.find(item => item.id === current.id);
if (!x) {
return acc.concat([current]);
} else {
return acc;
}
}, []);
xxxxxxxxxx
let arr = [{name: "john"}, {name: "jane"}, {name: "imelda"}, {name: "john"}];
const uniqueArray = arr.filter((v,i,a)=>a.findIndex(t=>(t.name===v.name))===i)
console.log(uniqueArray);
xxxxxxxxxx
const addresses = [ ]; // Some array I got from async call
const uniqueAddresses = Array.from(new Set(addresses.map(a => a.id)))
.map(id => {
return addresses.find(a => a.id === id)
})
xxxxxxxxxx
// remove duplicates objects from an array of objects using javascript
let arr = [
{id: 1, name: 'Chetan'},
{id: 1, name: 'Chetan'},
{id: 2, name: 'Ujesh'},
{id: 2, name: 'Ujesh'},
];
let jsonArray = arr.map(JSON.stringify);
console.log(jsonArray);
/*
[
'{"id":1,"name":"Chetan"}',
'{"id":1,"name":"Chetan"}',
'{"id":2,"name":"Ujesh"}',
'{"id":2,"name":"Ujesh"}'
]
*/
let uniqueArray = [new Set(jsonArray)].map(JSON.parse);
console.log(uniqueArray);
/*
[ { id: 1, name: 'Chetan' }, { id: 2, name: 'Ujesh' } ]
*/
xxxxxxxxxx
const uniqify = (array, key) => array.reduce((prev, curr) => prev.find(a => a[key] === curr[key]) ? prev : prev.push(curr) && prev, []);
xxxxxxxxxx
const arr = [
{ id: 1, name: "test1" },
{ id: 2, name: "test2" },
{ id: 2, name: "test3" },
{ id: 3, name: "test4" },
{ id: 4, name: "test5" },
{ id: 5, name: "test6" },
{ id: 5, name: "test7" },
{ id: 6, name: "test8" }
];
const filteredArr = arr.reduce((acc, current) => {
const x = acc.find(item => item.id === current.id);
if (!x) {
return acc.concat([current]);
} else {
return acc;
}
}, []);
xxxxxxxxxx
const array = [{id: 1, name: "hello"}, {id: 2, name: "hii"}, {id: 1, name: "hey"} ];
const cleanArray = array.reduce((unique, o) => {
if(!unique.some(obj => obj.id === o.id)) {
unique.push(o);
}
return unique;
},[]);
xxxxxxxxxx
// Join Without Dupes.
const joinWithoutDupes = (A, B) => {
const a = new Set(A.map(x => x.item))
const b = new Set(B.map(x => x.item))
return [A.filter(x => !b.has(x.item)), B.filter(x => !a.has(x.item))]
}
// Proof.
const output = joinWithoutDupes([{item:"apple",description: "lorem"},{item:"peach",description: "impsum"}], [{item:"apple", description: "dolor"},{item:"grape", description: "enum"}])
console.log(output)
xxxxxxxxxx
const
listOfTags = [{ id: 1, label: "Hello", color: "red", sorting: 0 }, { id: 2, label: "World", color: "green", sorting: 1 }, { id: 3, label: "Hello", color: "blue", sorting: 4 }, { id: 4, label: "Sunshine", color: "yellow", sorting: 5 }, { id: 5, label: "Hello", color: "red", sorting: 6 }],
keys = ['label', 'color'],
filtered = listOfTags.filter(
(s => o =>
(k => !s.has(k) && s.add(k))
(keys.map(k => o[k]).join('|'))
)
(new Set)
);
console.log(filtered);
xxxxxxxxxx
obj.arr = obj.arr.filter((value, index, self) =>
index === self.findIndex((t) => (
t.place === value.place && t.name === value.name
))
)