Javascript 删除带有下划线的对象数组中的对象
我想测试我的对象是否在我的对象数组中。为此,我使用下划线js和.where方法。但是,我的测试不起作用:Javascript 删除带有下划线的对象数组中的对象,javascript,underscore.js,Javascript,Underscore.js,我想测试我的对象是否在我的对象数组中。为此,我使用下划线js和.where方法。但是,我的测试不起作用: console.log(array); console.log(object); console.log(_.where(array, object).length); // return 0 我不明白为什么,因为我的对象在数组的第二个索引上 我尝试使用对象.is(数组[2],newCanvas)进行测试,但也返回false 有人知道吗 谢谢社区 假设您的ID是唯一的(看起来),您可以非常
console.log(array);
console.log(object);
console.log(_.where(array, object).length); // return 0
我不明白为什么,因为我的对象在数组的第二个索引上
我尝试使用对象.is(数组[2],newCanvas
)进行测试,但也返回false
有人知道吗
谢谢社区
假设您的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);
很抱歉,我编辑了我的消息:它返回2。我可以使用下划线从数组中删除我的对象吗?当然可以,但你也可以使用vanilla JS:
array.splice(2,1)
-用包含先前找到的索引的变量替换2。