2017-08-31 114 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