javascript - 删除对象属性不唯一的数组项

标签 javascript arrays reactjs

我有一个包含对象的数组,我需要根据 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");

演示:https://codepen.io/vedp/pen/RpmVvx?editors=0011

关于javascript - 删除对象属性不唯一的数组项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43254382/

相关文章:

JavaScript 数组原型(prototype)

reactjs - 如何使用react-router进行重定向,同时保留初始查询参数?

javascript - 为什么我没有收到序列化()的响应?

javascript - 如何将 React.Component 放入 CSS 内容属性(在 :before/:after pseudo-elements)?

javascript - For 循环仅循环 1 次 - JavaScript

python - 查找大量键 : dictionary vs. NumPy 数组

java - 在Java中初始化一个对数组

c - 将单词嵌入数组。 boolean 问题。

javascript - React Class如何在同一文件中的所有方法中传递变量

javascript - 将数据从 Rails Controller 传递到 React 组件