[英]Underscore JS difference on array and array with objects
我有一個帶有某些數字的數組和一個帶有某些對象的數組,看起來像這樣:
var names = [
{ id: 1, name: 'Alex'},
{ id: 2, name: 'John'},
{ id: 3, name: 'Mary'}
];
var blocked_ids = [1, 2];
現在,我想從名稱數組中刪除具有blocked_ids的對象。 因此結果將是這樣的:
[
{ id: 3, name: 'Mary'}
]
如您所見,標識為1和2的對象不見了,因為數組“ blocked_ids”包含了這些數字。 如果它只有兩個數組,我可以使用_.difference(),但是現在我必須將blocked_ids與數組對象內部的id進行比較。 有人知道該怎么做嗎?
假設給定的block-ids
是一個ID數組,則可以像下面這樣使用reject
var arr = [ { id: 1,
name: 'Alex'},
{ id: 2,
name: 'John'},
{ id: 3,
name: 'Mary'}
];
var block_ids = [1,2];
var result = _.reject(arr, function (obj) {
return block_ids.indexOf(obj.id) > -1;
});
console.log(result);
純ECMAScript解決方案:
names.filter(function(element) {
return blocked_ids.indexOf(element.id) === -1}
);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.