繁体   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