2017-05-18 110 views
0

我有一個對象:比較對象在JavaScript

rows = [ 
    { 
    name: "user1", 
    previlege: "Filtering" 
    }, 
    { 
    name: "user2", 
    previlege: "Reportering" 
    }, 
    { 
    name: "user3", 
    previlege: "Filtering" 
    } 
] 

而另一個對象:

selected = { 
    name: "user1", 
    previlege: "Filtering" 
} 

我想過濾行,並刪除其匹配的對象,所以我需要對它們進行比較。我想是這樣的:

rows.filter(function(object) { 
    return JSON.stringify(object) !== JSON.stringify(selected); 
}); 

但它不`噸的工作。我怎樣才能刪除這個匹配的對象?

+0

我跑你的代碼在Chrome的控制檯,它工作得很好。 –

+0

您確定要通過JSON.stringify()進行比較嗎?如果你想過濾出具有相同'name'屬性的對象,但它具有不同的'previlege'屬性,那麼它將不起作用。 –

+1

你的意思是什麼不起作用? –

回答

3

如果你想從數組中刪除元素,你可以嘗試過濾的結果存儲到一個新的數組

newArray = rows.filter(function(object) { 
    return JSON.stringify(object) !== JSON.stringify(selected); 
}); 

rows = newArray; 
+2

或簡單地'rows = rows .filter(...)' –

+0

是的,這也是工作,只是想更明確:) –