在js 中如何在list去重重复的json?
//数组去重
function uniqueList(array){
var r = [];
for(var i = 0, l = array.length; i < l; i++) {
for(var j = i + 1; j < l; j++)
if (array[i] === array[j]) j = ++i;
r.push(array[i]);
}
return r;
}
以上代码并不起作用。
例如:
var list = [{"name":"123"},{"name":"123"},{"name":"456"}]
结果:
var list = [{"name":"123"},{"name":"456"}]
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
两个对象是不能这么比较的,所指向的内存地址不同
只能遍历对象里面的属性去比较
这样比较的是对象的地址,所以始终是不同的,你可以在原型上定义一个比较对象相等的方法,可解决你这个问题:
原代码:
更改后代码:
你的代码问题出在 倆 Object 对比上。
把===换成==就行了 ===是绝对等于,地址也要相同~