Javascript 如何精确检查数组中的重复对象?
我是javascript初学者,我想检查数组中完全重复的对象 像这样Javascript 如何精确检查数组中的重复对象?,javascript,arrays,object,Javascript,Arrays,Object,我是javascript初学者,我想检查数组中完全重复的对象 像这样 array=[{name:'Tom',email:'Tom@gmail.com“},{姓名:'Pete',电子邮件:'Pete@gmail.com'}] 然后我有objectobject={name:'Tom',email:'Tom@gmail.com“} 当我将对象按入数组时,如array.push(object) 我想检查数组(数组[0])中的对象是否完全重复(每个键中的值相同) 如何?使用设置 创建一个集合并将所有值与
array=[{name:'Tom',email:'Tom@gmail.com“},{姓名:'Pete',电子邮件:'Pete@gmail.com'}]
然后我有objectobject={name:'Tom',email:'Tom@gmail.com“}
当我将对象按入数组时,如array.push(object)
我想检查数组(数组[0])中的对象是否完全重复(每个键中的值相同)
如何?使用设置
- 创建一个
集合
并将所有值与一些您确定不会出现在值中的分隔符字符串连接起来(我选择了+
)
- 因此,对于这个对象
{name:“Tom”,email:Tom@gmail.com“}
我们存储Tom+Tom@gmail.com集合中的
- 现在,在再次按下的同时,使用相同的分隔符字符串连接所有值,并检查
集中是否存在此分隔符
- 如果有,不要推
- 否则,将其推送到阵列
我在下面的代码段中尝试了推送两个对象,第一个对象没有被推送,而第二个对象被推送
警告
- 假设您有一个对象,其中是
name
是“Tom+”
,而email
是”Tom@gmail.com({姓名:“汤姆”,电子邮件:Tom@gmail.com“}
)
- 所以我们把汤姆储存起来++Tom@gmail.com“
在集合中
现在假设我们要插入一个对象,其中name
是Tom
,而email
是+Tom@gmail.com
,这绝对是与上述对象不同的对象
但既然我们再次生成相同的字符串Tom++Tom@gmail.com
要签入集合
,我们不会将此对象推送到阵列上
因此,明智地选择分隔符字符串至关重要。
const
arr=[{姓名:“汤姆”,电子邮件:Tom@gmail.com},{姓名:“皮特”,电子邮件:Pete@gmail.com" }],
s=新集合(arr.map((o)=>Object.values(o.join(“+”)),
addNewObj=(arr,obj)=>{
if(!s.has(Object.values(obj.join)(+)){
方位推力(obj);
}
};
addNewObj(arr,{姓名:“Tom”,电子邮件:Tom@gmail.com" });
addNewObj(arr,{姓名:“John”,电子邮件:John@gmail.com" });
控制台日志(arr)代码>请提供@ProgrammingRage否,我想将对象推入数组如果数组中不存在像我想推入的对象那样的对象在所有验证成功之前不要将对象推入数组。如果任何验证失败,那么只需打印它是一个副本或执行任何您打算执行的操作。@Marimokung请检查这是否解决了您的问题,如果您有任何问题,请告诉我。