2017-08-31 86 views
-1

我想测试我的对象是否在我的数组对象中。为此,我使用underscorejs和.where方法。但是,我的测试不起作用:用下划线删除对象数组中的对象

console.log(array); 
console.log(object); 
console.log(_.where(array, object).length); // return 0 

我不明白为什么,因为我的目标是在我的数组第二个指标。

我试着用Object.is(array[2], newCanvas进行测试,但也返回false。

任何人有想法吗?

谢谢社区!

enter image description here

回答

0

意味着你的ID是唯一的(因为它出现),可以使用香草JS这很容易地:

array.findIndex(x => x.id === object.id)

如果找到这将返回对象的索引如果该对象不存在于数组中,则返回。

你可以在一杆,如果这就是你想要什么实际删除此:

array = array.filter(x => x.id !== object.id);

或者稍长版本:

var indexOfMyObject = array.findIndex(x => x.id === object.id); 

if (indexOfMyObject > -1) 
    array.splice(indexOfMyObject, 1); 
+0

对不起,ID编辑我的信息:它返回2。我可以使用下划线从我的数组中删除我的对象吗? –

+0

当然,但你也可以用vanilla JS做到这一点:'array.splice(2,1)' - 用包含你之前找到的索引的变量替换2。 – UncleDave