【发布时间】:2022-01-14 17:11:00
【问题描述】:
尝试使用键/对将数组遍历到对象中(是的,我知道 reduce):
这是数组:
filtered2 = [["deviceName", "TestDevice00003"], ["hwModelName", "TestHwModel03"], ["deviceTypeName", "TestDeviceType03"], ["serviceTag", "A1A03"]]
但出于某种原因,当我执行 forEach 时:
filtered2.forEach( (indiv) => {
console.log([indiv[0]]+" | " +[indiv[1]])
obj3 = {
...obj3,
[[indiv[0]][0]] : [indiv[1]]
}
})
Console.log 将每个 (indiv) 视为“hwModelName | TestHwModel03”
在[indiv[0]]+" | " +[indiv[1]],所以都是基本字符串
但 forEach 函数将 [indiv[1]] 视为 Array ["TestHwModel03"]
所以我必须再深入一级[indiv[1]][0] 到数组中才能得到解包的字符串“TestHwModel03”
为什么会有这种差异?
【问题讨论】:
-
[indiv[0]]+" | " +[indiv[1]]是array+string+array。使用indiv[0] + " | " + indiv[1] -
[indiv[0]]创建一个新数组。这真的是你想做的吗?我希望您只想访问indiv[0] -
至于为什么
[indiv[0]]+" | " +[indiv[1]]会给你预期的结果 - 你需要阅读type coercion
标签: javascript arrays