当我们需要判断一个对象数组中是否有重复的数据时,使用双层循环无疑是一种比较原始的解决方案,在这里介绍一种更加优雅的解决方法
这里用到了es6中新增的种数据结构set,这是类似redis中的集合的概念,内部的元素不可重复,可以利用这个特征来判断数组中是否有重复的值
例如有如下的一个对象数组
users:
[
{
id:1
name:xiaoming
},
{
id:2
name:zhangsan
},
{
id:3
name:lisi
},
{
id:4
name:xiaoming
}
]
可以看到,在这个数组中,xiaoming这个name出现了两次
可以用下面的代码来判断数组中是否有重复出现的姓名
// 判断是否有节点名称重复
const nodeNames = users.map(value=>value.name);
const nodeNamesSet = new Set(nodeNames)
if (nodeNamesSet.size !== nodeNames.length) {
console.log("有重复姓名")
}else{
console.log("没有重复姓名")
}