2013-12-15 28 views
0

我有2 arrays,我們稱它們爲List1List2。我想在List1不在List2顯示不在另一個陣列中的對象

List1只顯示物體看起來是這樣的:

[ 
    { 
     id: 1, 
     name: banana 
    }, 

    { 
     id: 2, 
     name: apple 
    } 
] 

List2看起來是這樣的:

[ 
    { 
     id: 2, 
     name: apple 
    } 
] 

我怎樣才能做到這一點AngularJS/Javascript

+1

你到目前爲止嘗試過什麼。另外,那些不是數組。我假設你打算使用'[]'而不是'{}'? – Andy

+0

以角度來解決這個問題的多種方法...在某種程度上取決於用例。請提供更多的細節,代碼示例會有所幫助 – charlietfl

回答

3

假設你的ID是唯一的,這是很容易做到:

首先,你需要收集的ID在列表2. Array.map是一個很好的人選。

var L2_ids = List2.map(function(el2){return el2.id}) 
// [2] in your example 

現在我們可以根據每個元素的ID是否在L2_ids列表過濾列表1。 Array.filter將做得很好:

var diffList = List1.filter(function(x){return L2_ids.indexOf(x.id)===-1}) 
// [ {banana object} ] 
相關問題