使用下划线删除对象Array中的对象

时间:2017-08-31 09:30:15

标签: javascript underscore.js

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

Object.is(array[2], newCanvas

我不明白为什么,因为我的对象在我的数组中的第二个索引上。

我尝试使用{{1}}进行测试,但也返回false。

有人有想法吗?

谢谢社区!

enter image description here

1 个答案:

答案 0 :(得分:0)

假设您的ID是唯一的(如图所示),您可以非常轻松地使用vanilla JS:

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

如果对象的索引找到它,则返回对象的索引;如果对象不在数组中,则返回-1

如果你想要的话,你可以一次性删除它:

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

或稍长的版本:

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

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