javascript - 通过 id 从列表中检索多个项目

标签 javascript ecmascript-6

我有一个数组,例如:

const cars = [
  { id: 23423, brand: 'bmw', doors: 2, color: 'red' },
  { id: 23452, brand: 'volvo', doors: 4, color: 'gray' },
  { id: 97456, brand: 'citroen', doors: 4, color: 'black' },
  { id: 45784, brand: 'dodge', doors: 2, color: 'red' },
  { id: 23452, brand: 'ferrari', doors: 2, color: 'red' },
  { id: 23522, brand: 'bmw', doors: 2, color: 'blue' }
];

这里我有一个 ID 列表,例如:[45784, 23522]

我想找到使用 map、filter 或 reduce 的最佳方法,以使用 ids 数组检索第一个数组中的项目。

谢谢

最佳答案

您可以使用 Array#includes 进行过滤。

该提案使用 destructuring assignment 作为对象的 id 属性。

var cars = [{ id: 23423, brand: 'bmw', doors: 2, color: 'red' }, { id: 23452, brand: 'volvo', doors: 4, color: 'gray' }, { id: 97456, brand: 'citroen', doors: 4, color: 'black' }, { id: 45784, brand: 'dodge', doors: 2, color: 'red' }, { id: 23452, brand: 'ferrari', doors: 2, color: 'red' }, { id: 23522, brand: 'bmw', doors: 2, color: 'blue' }],
    ids = [45784, 23522],
    result = cars.filter(({ id }) => ids.includes(id));

console.log(result);

关于javascript - 通过 id 从列表中检索多个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49538029/

相关文章:

javascript - 如何在javascript中编写自己的数组方法?

javascript - 正则表达式严格检查字母数字和特殊字符

javascript - 减少两个 Canvas html 之间的空间

javascript - 使用动态模式从 JSON 加载

javascript - Babel 编译代码中的 this 语法是什么?

javascript - 如何使用 ES6 方法将这个对象数组转换为字符串?

javascript - 如何在一些代码后导入ES6(SystemJS)?

javascript - 指定第二个默认参数 Javascript

javascript - 有没有办法卡住 ES6 map ?

Javascript click() 不适用于某些元素