【发布时间】:2023-04-01 05:10:01
【问题描述】:
我有两个数组,arr1 是一个对象数组,arr2 只是一个常规数组。我正在尝试将arr2 值与arr1 对象中的“原始”值匹配,并将“新”值返回到新的结果数组中。 arr2 中通常有 2 个以上的项目,并且顺序并不总是相同,这就是为什么我不能每次都按索引匹配。
let arr1 = [
{ original: "1x Adjustments", new: "ONETIME_AMT" },
{ original: "Churn", new: "CHURN_AMT" },
{ original: "Funnel", new: "FUNNEL_AMT" },
];
let arr2 = [ '1x Adjustments', 'Churn' ]
desiredResult = ["ONETIME_AMT", "CHURN_AMT"]
我尝试多次使用 map 函数,但我得到的最接近的只是返回恰好匹配的第一个元素,也许我也需要在其中使用 for 循环?
var desiredResult = arr2.map(item => item === arr1[0].original ? arr1[0].new : '')
理想情况下,我认为 [0] 可以在 for 循环中替换为 i(索引),但不确定如何在 map 函数中实现 for 循环(或者这是否是正确的解决方案)
【问题讨论】:
-
使用
Array.find,代码:arr2.map(item => arr1.find(({original}) => original == item ).new)
标签: javascript arrays for-loop object