【发布时间】:2020-08-08 13:41:10
【问题描述】:
我正在尝试将嵌套数组中的数据选择返回到新的嵌套数组,但数据只是被推入数组。
var selection = [0,1,3,4];
var allProductData = [['Item1Sku','Item1Name', 'Item1Desc', 'Item1Price', 'Item1Available', 'Item1Margin'], ['Item2Sku','Item2Name', 'Item2Desc', 'Item2Price', 'Item2Available', 'Item2Margin'], ['Item3Sku','Item3Name', 'Item3Desc', 'Item3Price', 'Item3Available', 'Item3Margin']]
var selectedProductData = []
for(var apd=0; apd<allProductData.length; apd++) {
for(var spd=0; spd<allProductData[apd].length; spd++) {
for(var s=0; s<selection.length; s++) {
if(allProductData[apd].indexOf(allProductData[apd][spd]) === selection[s]) {
selectedProductData.push(allProductData[apd][spd])
}
}
}
}
console.log(selectedProductData)
这将返回以下内容
[
"Item1Sku","Item1Name","Item1Price","Item1Available",
"Item2Sku","Item2Name","Item2Price","Item2Available",
"Item3Sku","Item3Name","Item3Price","Item3Available"
]
我想要的是
[
["Item1Sku","Item1Name","Item1Price","Item1Available"],
["Item2Sku","Item2Name","Item2Price","Item2Available"],
["Item3Sku","Item3Name","Item3Price","Item3Available"]
]
这方面的任何帮助都会很棒。
【问题讨论】:
-
... 寻找一种方法,对于给定的数组,遇到 2 次 1:1 关系,因此,在我看来,最优雅/可读的解决方案将是完全基于 @ 987654321@.
-
@PeterSeliger,复杂更好......作为公认的答案。叹息。
-
@NinaScholz ... 同意,但接受 A 的优点是,OP 显然可以回溯/重现/理解代码中概念性思考不够仔细的点。额外的答案给了 OP 一些思考和学习/成长的东西。
标签: javascript arrays loops for-loop