Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 删除带有下划线的对象数组中的对象_Javascript_Underscore.js - Fatal编程技术网

Javascript 删除带有下划线的对象数组中的对象

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是唯一的(看起来),您可以非常

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

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。