3 回答

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超5個(gè)贊
您可以使用 anew Map()來存儲(chǔ)鍵值對(duì),其中b是您的鍵,a是您的值。在此之后,您可以.map()您的數(shù)組b值的數(shù)組a值使用你構(gòu)建的地圖:
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);

TA貢獻(xiàn)2065條經(jīng)驗(yàn) 獲得超14個(gè)贊
你可以試試 Array.prototype.filter()
該
filter()
方法創(chuàng)建一個(gè)新數(shù)組,其中包含通過提供的函數(shù)實(shí)現(xiàn)的測(cè)試的所有元素。
該
includes()
方法確定數(shù)組是否在其條目中包含某個(gè)值,并根據(jù)需要返回 true 或 false。
該
map()
方法使用對(duì)調(diào)用數(shù)組中的每個(gè)元素調(diào)用提供的函數(shù)的結(jié)果創(chuàng)建一個(gè)新數(shù)組。
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);

TA貢獻(xiàn)1911條經(jīng)驗(yàn) 獲得超7個(gè)贊
您可以使用諸如 的高階函數(shù)來完成filter, map, find e.t.c,但正如您所說,您是 javascript 新手 - 我認(rèn)為這是理解和獲得預(yù)期結(jié)果的最簡(jiǎn)單方法。
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]
添加回答
舉報(bào)