2015-08-24 40 views
0

我在AngularJS這樣的對象的數組:如何在AngularJS中通過兩個屬性刪除元素和數組?

var example = [ {id:'1', 
       read: false, 
       folder: 'inbox'}, 
       {id:'2', 
       read: true, 
       folder: 'inbox'}, 
       {id:'3', 
       read: true, 
       folder: 'trash'}, 
       {id:'4', 
       read: false, 
       folder: 'trash'}]; 

,我需要刪除具有的屬性folder == 'trash'read == true同時任何對象。

所以我試圖用lodash做這樣的:

example = lodash.filter(example, function(value, index) { 
    return (value.folder !== 'trash') && (value.read !== true); 
}); 

應該只刪除項目#3,但它會刪除#3#4

顯然我不明白lodash.filter是如何工作的。

有人可以幫忙嗎?

回答

1

您邏輯運算符不正確。將條件設置爲folder == 'trash'read == true,否定它。

example = lodash.filter(example, function(value) { 
    return (value.folder == 'trash' && value.read == true) == false; 
}); 
0

您需要刪除「true」附近的引號。您想保留的所有元素,其中的文件夾是不是「垃圾」或讀取屬性不是true所以你的邏輯是這樣的

return (value.folder !== 'trash') || (value.read !== true); 
0

操作符!==是假的。使用==代替。

return (value.folder == 'trash' && value.read == 'true') == false; 
相關問題