gpt4 book ai didi

javascript - 使用另一个数组过滤一个数组

转载 作者:太空宇宙 更新时间:2023-11-04 15:46:36 33 4
gpt4 key购买 nike

Array1 = [ name1, name2];
Array2 = [ { name: name1 , id: 1, location: xyz, address: 123 },
{ name: name2 , id: 2, location: abc, address: 456 },
{ name: name3 , id: 3, location: def, address: 234 },
{ name: name4 , id: 4, location: ghi, address: 789 }
];

我有 2 个数组 - Array1 和 Array2。我想使用 Array1 过滤 Array2,这样我的输出为 - [ { name: name1 , id: 1 }, { name: name2 , id: 2 }] 。我尝试这样 - var ids = _.pluck(_.filter(Array2, a => _.contains(Array1, a.id)), 'id'); 但问题是它一次只提供一件事意味着我一次只能获取名称或 ID 或位置或地址,但我想一次过滤名称和 ID。

最佳答案

循环第二个数组,并为每个项目查找第一个数组是否包含它。如果包含,includes 将返回 true,并且该元素将位于新数组中。

请注意,这仅适用于ES6

var arr1 = [ 'A', 'B'];
var arr2 = [ { name: 'A' , id: 1,address: 123 },
{ name: 'B' , id: 2, address: 456 },
{ name: 'C' , id: 3, address: 234 },
{ name: 'D' , id: 4,address: 789 }
];

var newArr = arr2.filter(item => arr1.includes(item.name)).map(item => ({ name: item.name, id: item.id}));

console.log(newArr);

关于javascript - 使用另一个数组过滤一个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43511963/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com