-
RISEBY
您可以使用 anew Map()来存储键值对,其中b是您的键,a是您的值。在此之后,您可以.map()您的数组b值的数组a值使用你构建的地图: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);
-
翻翻过去那场雪
你可以试试 Array.prototype.filter()该filter()方法创建一个新数组,其中包含通过提供的函数实现的测试的所有元素。Array.prototype.includes()该includes()方法确定数组是否在其条目中包含某个值,并根据需要返回 true 或 false。和 Array.prototype.map()该map()方法使用对调用数组中的每个元素调用提供的函数的结果创建一个新数组。var jsObjects = [ {a: 1, b: 2}, {a: 3, b: 4}, {a: 5, b: 6}, {a: 7, b: 8}];var myArray = [4,6,8]var resArray = jsObjects.filter(i => myArray.includes(i.b)).map(i => i.a);console.log(resArray);
-
Smart猫小萌
您可以使用诸如 的高阶函数来完成filter, map, find e.t.c,但正如您所说,您是 javascript 新手 - 我认为这是理解和获得预期结果的最简单方法。var jsObjects = [ {a: 1, b: 2}, {a: 3, b: 4}, {a: 5, b: 6}, {a: 7, b: 8}];var myArray = [4,6,8]var finalArray = [];for(let bValue of myArray) { for(let item in jsObjects) { if(bValue == jsObjects[item].b) { finalArray.push(jsObjects[item].a); } }}console.log(finalArray); // [3, 5, 7]