Удалить список объектов на основе идентификаторов массива с помощью ES6 - PullRequest
0 голосов
/ 16 ноября 2018

У меня есть массивы с идентификаторами и списками объектов с одинаковыми идентификаторами, содержащимися в массивах, как я могу удалить объекты на основе идентификаторов массива?

Массив:

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”
    }
}

Ответы [ 2 ]

0 голосов
/ 16 ноября 2018

Если список объектов является массивом, вы можете сделать это так:

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];
    }
}
0 голосов
/ 16 ноября 2018

Методы массива

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

Метод include () определяет, содержит ли массив определенный элемент, возвращая, в зависимости от ситуации, 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)) ));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...