Lou*_*ocq 2 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' }
];
Run Code Online (Sandbox Code Playgroud)
这里我有一个id列表,例如: [45784, 23522]
我想找到使用map,filter或reduce的最佳方法,使用ids数组检索第一个数组中的项目.
谢谢
简单如下:
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' }
],
ids = [45784, 23522];
let arr = cars.filter(elem => ids.includes(elem.id));
console.log(arr);Run Code Online (Sandbox Code Playgroud)
您可以使用过滤Array#includes.
这个建议使用解构赋值为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);Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
95 次 |
| 最近记录: |