gpt4 book ai didi

javascript - 如何从 arrayList Jquery/Javascript 中删除重复的对象值

转载 作者:行者123 更新时间:2023-11-29 10:41:48 25 4
gpt4 key购买 nike

我有一个包含对象的数组列表。如果对象具有相同的值,我只需要显示一个值。

例如:[ {a:0,b:1},{a:1,b:0},{a:0,b:1} ]在上面的示例中,我只需要显示第一个和第二个对象并跳过第三个对象,因为它与第一个对象相同。

注意:数组中的对象可以是无限的,我不能硬编码索引值。谁能帮我找出通用的解决方案。

这是我试过的:

points = [];
newarr = [];
locArray = [ {a:0,b:1},{a:1,b:0},{a:0,b:1} ];

if(abc!=null){
removeDuplicateCoordinates();
$.each(newarr,function(key,val){
points.push([val.a,val.b]);

});

}

function removeDuplicateCoordinates(){
var arr = locArray;
$.each(arr, function(index,item){
if(searchForItem(newarr,item)<0){
newarr.push(item);
}
});
}
function searchForItem(array, item){
var i, j, current;
for(i = 0; i < array.length; ++i){
if(item.length === array[i].length){
current = array[i];
for(j = 0; j < item.length && item[j] === current[j]; ++j);
if(j === item.length)
return i;
}
}
return -1;
}

最佳答案

Fiddle Demo
试试这个

    newarr = [];
testarr = [];
locArray = [ {a:0,b:1},{a:1,b:0},{a:0,b:1} ];
for (var i = 0; i<locArray.length;i++)
{
var idx = $.inArray(String(locArray[i].a)+String(locArray[i].b), testarr);
if (idx == -1) {
testarr.push(String(locArray[i].a)+String(locArray[i].b));
newarr.push(locArray[i]);
}
}
console.log(newarr);

关于javascript - 如何从 arrayList Jquery/Javascript 中删除重复的对象值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27636161/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com