Как отфильтровать несколько объектов из списка объектов по массиву свойств? - PullRequest
1 голос
/ 13 июня 2019

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


const data= [
    {
        id: 1,
        name: 'name1'
    },
    {
        id: 2,
        name: 'name2'
    },
    {
        id: 3,
        name: 'name3'
    },
    {
        id: 4,
        name: 'name4'
    }
];
const array = [1,3,4];

const expectedResult= [
    {
        id: 1,
        name: 'name1'
    },
    {
        id: 3,
        name: 'name3'
    },
    {
        id: 4,
        name: 'name4'
    }
];

Ответы [ 2 ]

1 голос
/ 13 июня 2019

Используйте .filter и .includes

    const data= [
            {
                id: 1,
                name: 'name1'
            },
            {
                id: 2,
                name: 'name2'
            },
            {
                id: 3,
                name: 'name3'
            },
            {
                id: 4,
                name: 'name4'
            }
        ];

    const array = [1, 3, 4] 
    
    const result = data.filter((item) => {

       //gives us items that passes a condition
       return array.includes(item.id)
     
    })
    
    console.log(result)
0 голосов
/ 13 июня 2019

const IDS = [1,2]

const items = [
    {id: 1, label: 'a'},
    {id: 3, label: 'b'},
    {id: 2, label: 'c'},
]

console.log(items.filter(x =>{
    for(let id of IDS){
        if(id === x.id)
            return true
    }
    return false
}))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...