请问,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);
执行结果如下:
备注:
个人分析是:两个对象的地址不一样,所以导致没有去除
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
当两个值都是对象的时候,比较的是两个对象在内存中是否指向的是同一个对象。这也就是为什么
{}!=={}
的原因。你的分析是对的
那具体怎么解决呢?