TS,JS 如何快速判断出数据list中某个字段值 ,是否有重复?(基础问题)

如题.有如下list,如何判断,其中的Name字段值 ,是否有重复?
(下面数据有重复,即有两条Name字段的值为 name2)

打扰各位了.
data:

[
  {
    "Name": "name1",
    "id": "3325121b",
    "index": 0
  },
  {
    "Name": "name2",
    "id": "0ad74ac0",
    "index": 1
  },
  {
    "Name": "name2",
    "id": "0f6ad980",
    "index": 2
  }
]
阅读 6.9k
2 个回答

不知道你想得到什么结果,下面得到的是所有重复的Name

const data = [
  {
    "Name": "name1",
    "id": "3325121b",
    "index": 0
  },
  {
    "Name": "name2",
    "id": "0ad74ac0",
    "index": 1
  },
  {
    "Name": "name2",
    "id": "0f6ad980",
    "index": 2
  }
];

const nameIndex = data.reduce((acc, item) => {acc[item.Name] = (acc[item.Name] || 0) + 1; return acc;}, {});

Object.keys(nameIndex).filter(i => nameIndex[i] > 1);

思路供参考

const containDuplicate = (arr, prop) =>
  arr.reduce((m, x) => m.set(x[prop], x), new Map()).size !== arr.length

const data = [
  {
    "Name": "name1",
    "id": "3325121b",
    "index": 0
  },
  {
    "Name": "name2",
    "id": "0ad74ac0",
    "index": 1
  },
  {
    "Name": "name2",
    "id": "0f6ad980",
    "index": 2
  }
]

console.log(containDuplicate(data, 'Name'))
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题