当我们需要判断一个对象数组中是否有重复的数据时,使用双层循环无疑是一种比较原始的解决方案,在这里介绍一种更加优雅的解决方法

这里用到了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("没有重复姓名")   
}
Logo

openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。

更多推荐