2016-08-30 5 views
0

オブジェクトの配列からアイテムを削除するにはどうすればよいですか? isn isnが配列と一致する項目を削除する必要があるプロパティの配列があります。ここで は一例です:オブジェクトの配列からアイテムを削除するには?

let selectedIsn = [10,15,20,30,40]; 
let arayObject = [{ 
    isn:10, 
    name:"Bolt" 
}, { 
    isn:13, 
    name:"marry" 
},{ 
    isn:15, 
    name:"a" 
},{ 
    isn:18, 
    name:"q" 
}, { 
    isn:20, 
    name:"marrys" 
},{ 
    isn:25, 
    name:"aa" 
},{ 
    isn:30, 
    name:"qa" 
}, { 
    isn:40, 
    name:"marrya" 
},{ 
    isn:55, 
    name:"sa" 
},{ 
    isn:68, 
    name:"qas" 
}]; 

let deleteSelected = (q,selectedItems) => { 
     let arrayNew = q, 
      count=0; 

    for (var m = 0; m < q.length; m++) { 
     let index = selectedItems.indexOf(q[m]["isn"]); 
     if (index > -1) { 
      arrayNew.splice(m - count, 1); 
      count++; 
     } 
    } 
    return arrayNew; 
} 

deleteSelected(arayObject,selectedIsn); 

は、与えられたリストのないすべての要素を削除します。私は何が悪いのか分からない。

答えて

2

はちょうどあなたが配列から選択した項目を取得するために.filter機能を使用することができ、この

var result = arayObject.filter(item => selectedIsn.indexOf(item.isn)===-1); 
3

のようなフィルタを使用し

let deselected = arayObject.filter(function (a) { 
    return selectedIsn.indexOf(a.isn) < 0; 
}); 
関連する問題