簡體   English   中英

使用ES6從數組ID中刪除對象列表

[英]Delete list of objects based from an array ids using ES6

我有一個包含ID的數組和包含在數組中的相同ID的對象列表,如何從數組ID中刪除對象?

數組:

user_ids: [“id001”, “id004”]

對象列表:

{
    {
        “user_id”: “id001”,
        “city”: “Seattle”
    },
    {
        “user_id”: “id002”,
        “city”: “Los Angeles”
    },
    {
        “user_id”: “id003”,
        “city”: “San Francisco”
    },
    {
        “user_id”: “id004”,
        “city”: “San Diego”
    }
}

因此結果將是:

{
    {
        “user_id”: “id002”,
        “city”: “Los Angeles”
    },
    {
        “user_id”: “id003”,
        “city”: “San Francisco”
    }
}

數組方法

Array.prototype.filter()

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter

filter()方法創建一個新數組,其中所有元素都通過了由提供的函數實現的測試。

Array.prototype.includes()

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/includes

includes()方法確定數組是否包含某個元素,並在適當時返回true或false。

 let user_ids = ["id001", "id004"]; let list = [ { "user_id": "id001", "city": "Seattle" }, { "user_id": "id002", "city": "Los Angeles" }, { "user_id": "id003", "city": "San Francisco" }, { "user_id": "id004", "city": "San Diego" } ]; console.log(list.filter( o => !(user_ids.includes(o.user_id)) )); 

如果對象列表是數組,則可以這樣操作:

for (var i = 0;i<object_list.length;i++){
    if (object_list[i]["user_id"] in user_ids){
        object_list.splice(i, 1);
    }
}

如果它是一個對象,則可以通過以下方式完成:

for (var i in object_list){
    if (object_list[i]["user_id"] in user_ids){
        delete object_list[i];
    }
}

暫無
暫無

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

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