首页 > 解决方案 > 将数组与对象数组匹配并获取值

问题描述

我是 JS 新手。我有一个如下所述的对象数组,并且我有一个包含值的数组。我是否可以描述预期的输出?

var jsObjects = [
   {a: 1, b: 2}, 
   {a: 3, b: 4}, 
   {a: 5, b: 6}, 
   {a: 7, b: 8}
];

var myArray = [4,6,8]

Output: [3,5,7]

标签: javascript

解决方案


您可以使用 anew Map()来存储键值对,其中b是您的键,a是您的值。之后,您可以使用您构建的映射将值数组转换为值.map()数组ba

const jsObjects = [
   {a: 1, b: 2}, 
   {a: 3, b: 4}, 
   {a: 5, b: 6}, 
   {a: 7, b: 8}
];

const myArray = [4,6,8];

const search = new Map(jsObjects.map(({a, b}) => [b, a]));
const res = myArray.map(v => search.get(v));
console.log(res);


推荐阅读