javascript - 请问,ES6集合(Set)去除重复为什么没有办法去除重复对象?
本文介绍了javascript - 请问,ES6集合(Set)去除重复为什么没有办法去除重复对象?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
代码如下:
var arr = [1, 3, 19, 3, '3m', '11', '3', 20, {
name: 'component',
age: 18
}, {
name: 'component',
age: 18
}];
function uniq(arr) {
var tmp = new Set(arr);
return Array.from(tmp)
}
console.time('去除重复');
var ret = uniq(arr);
console.timeEnd('去除重复');
console.log(ret);
执行结果如下:
备注:
个人分析是:两个对象的地址不一样,所以导致没有去除
解决方案
当两个值都是对象的时候,比较的是两个对象在内存中是否指向的是同一个对象。这也就是为什么{}!=={}
的原因。
这篇关于javascript - 请问,ES6集合(Set)去除重复为什么没有办法去除重复对象?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文