簡體   English   中英

使用ID從數組中刪除多個元素

[英]Removing multiple elements from an array using IDs

我想根據它們的gameID從數組中刪除多個項目。 目前,我的代碼只會刪除一個項目。

有一個類似的問題,在回答中有一條評論,說我可以使用以下內容,但不確定如何向其中添加多個ID:

data.filter(e => !ids.includes(e.gameId))

這是我的代碼,目前可用於一項(1138):

var data = $.grep(data, function(e){
return e.gameId != 1138;
});

我們將非常感謝您提供有關如何向其中添加多個ID的任何幫助!

如果您擁有所有可能ID的數組,則可以執行以下操作:

let gameID = 1138;
let gameIDArrays = [1138, 1139, etc...];

let newArray = data.filter(e => !gameIDArrays.includes(e.gameId))

您還可以使用Array.indexOf(e)對於Array不存在的元素返回-1的事實:

var new_data = $.grep(data, function(e){
    return [1, 2, 3, 1138].indexOf(e.gameId) == -1;
});

需要數據數組和id數組進行過濾的函數。 對於數據中的每個元素對象,如果在ids數組中包含gameId ,則從結果中對其進行過濾。

 const filterByIds = (data = [], ids = []) => data.filter( ({gameId}) => !ids.includes(gameId) ); const data = [ { gameId: 123 }, { gameId: 456 }, { gameId: 789 }, ]; console.log(filterByIds(data, [123])); console.log(filterByIds(data, [123, 789])); console.log(filterByIds(data, [789, 123])); console.log(filterByIds(data, [456, 789, 123])); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM