我有一个包含对象的数组,我需要根据 data-itemid
属性删除重复项。
这是我的代码:
const ListItemsUnique = []
ListItems.map(item => {
if (ListItemsUnique.indexOf(item.props['data-itemid']) === -1) {
ListItemsUnique.push(item)
}
});
它返回与之前完全相同的数组,我做错了什么?
最佳答案
如果你使用的是 ES6,试试这个,
const ListItemsUnique = [...new Set(ListItems.map(item => item.props['data-itemid']))];
编辑 1:
let data = [
{
name: 'John',
"data-itemid": 2
},
{
name: 'Doe',
"data-itemid": 1
},
{
name: 'James',
"data-itemid": 1
},
{
name: 'Clerk',
"data-itemid": 2
}
];
// Use Map (ES6) to retain only unique elements
let map = new Map();
for (element of data) {
map.set(element["data-itemid"], element);
}
var filteredData = [];
map.forEach( (value) => {
filteredData.push(value);
});
console.log(filteredData,"filteredData");
关于javascript - 删除对象属性不唯一的数组项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43254382/