2015-11-20 149 views
0

JSON A [ '711', '722', '733', '744']刪除JSON其匹配到另一個JSON的javascript angularjs JSON

JSON B [{PID:711,名稱: '你好'} ,{pid:733,name:'world'},{pid:713,name:'hello'},{pid:744,name:'hellosdaf'}]

嘗試刪除數組B JSON A.像JSON B 711,733,744與數組匹配到JSON A,我想刪除它們。

我嘗試以下功能,但不工作,總是有一個或兩個字符串是錯過刪除。

 angular.forEach(B, function(value, index){ 
       if(A.indexOf(value.pid) > -1){ 
      B.splice(index , 1); 

     } 
     }); 
+0

您正在使用的索引中刪除的條目。無論何時刪除某個項目,索引都會重新排列。不要從B中刪除,而是將不匹配的元素推送到新的數組中。 – Jules

+0

謝謝你指出我的問題 –

回答

1
通過

數組A環,然後通過使用濾波器函數 器陣列B和使用迭代器功能和僅返回功能鍵「PID」不匹配。

for(var c of A){ 
    B = B.filter(function(n){ 
    return n.pid !== parseInt(c) 
    }); 
} 

希望這有助於

+0

非常感謝你,保存我的一天,謝謝你 –