如何通过属性数组从列表对象中过滤多个对象?

时间:2019-06-13 19:06:44

标签: arrays reactjs object

我有一个对象数组,其中每个对象都包含一个ID和一个名称,一个单独的数组包含一组ID。我想根据第二个数组过滤第一个数组。


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 个答案:

答案 0 :(得分:1)

使用.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)

答案 1 :(得分:0)

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