我有一个包含对象的arrayList。当对象具有相同的值时,我需要仅显示一个值。
例如:[{a:0,b:1},{a:1,b:0},{a:0,b:1}] 从上面的例子中,我只需要展示第一个和第二个对象,并跳过第三个对象,因为它与第一个对象相同。
注意:数组中的对象可以是无限的,我不能硬编码索引值。谁能帮助我找到通用解决方案。
这是我尝试过的内容:
例如:[{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;
}