我有很多对象,我想从中过滤出重复项。当一个对象具有属性IMAGEURL
并且该属性存在于另一个对象中时,我想忽略此对象并继续操作。
我正在使用nodeJS
,如果有可以使操作更容易的库,请告诉我。
我以前曾使用类似的实现方式,在数组中检查字符串值,例如:
var arr = ['foo', 'bar'];
if(arr.indexOf('foo') == -1){
arr.push('foo')
}
但是据我所知,这种方法不适用于对象。那么在这种情况下我的选择是什么?更简单地说:
var obj1 = {IMAGEURL: 'http://whatever.com/1'};
var obj2 = {IMAGEURL: 'http://whatever.com/2'};
var obj3 = {IMAGEURL: 'http://whatever.com/1'};
var arr = [obj1, obj2, obj3];
var uniqueArr = [];
for (var i = 0; i<arr.length; i++){
// For all the iterations of 'uniqueArr', if uniqueArr[interation].IMAGEURL == arr[i].IMAGEURL, don't add arr[i] to uniqueArr
}
我该如何做到这一点?
j != uniqueArr.length
而不是j < uniqueArr.length
吗?我不太明白这里的问题。 - JVG<
而不是!=
。在这种特殊情况下,由于j
每次增加1
,两者产生的结果相同。我通常默认在这些循环中使用!=
(必要时选择<
或>
)。 - SheetJS