首页 > 解决方案 > 使用元素数组过滤对象数组

问题描述

有一个对象数组

var objArray = [{name: orange, id: 1},{name : apple, id:2},{name: banana, id:3},{name: grapes, id:4}]

和一个 id 的数组

var arrId = [1,4]

如何过滤以从对象数组中获取匹配 id 的相应对象?

预期的:

var result = [{name: orange, id: 1}, {name: grapes, id:4}]

试过:

objArray.filter(o => o.id === arrId);

标签: javascriptarraystypescriptfilter

解决方案


你可以检查一下Array#includes

var objArray = [{ name: 'orange', id: 1 }, { name: 'apple', id: 2 }, { name: 'banana', id: 3 }, { name: 'grapes', id: 4 }],
    arrId = [1, 4],
    result = objArray.filter(o => arrId.includes(o.id));

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }


推荐阅读