代码如下:
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);
执行结果如下:

备注:
个人分析是:两个对象的地址不一样,所以导致没有去除
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
当两个值都是对象的时候,比较的是两个对象在内存中是否指向的是同一个对象。这也就是为什么
{}!=={}的原因。你的分析是对的