javascript - 如何将 3d 数组转换为 2d 数组

标签 javascript arrays multidimensional-array

我想将 3d 数组转换为 2d 数组

所以我有这样的 3d 数组

[
  [
    ["creative fee (example)"],
    [1000]
  ],
  [
    ["Item 1...", "Item 2..."],
    [600, 1000]
  ],
  [
    ["Item 3...", "Item 4..."],
    [400, 600]
  ]
]

并想像这样转换为二维数组(预期结果)

[
  ["creative fee (example)", 1000],
  ["Item 1...", 600],
  ["Item 2...", 1000],
  ["Item 3...", 400],
  ["Item 4...", 600]
]

这是我尝试过的方法,但开始时太难了

var carry = [
  [
    ["creative fee (example)"],
    [1000]
  ],
  [
    ["Item 1...", "Item 2..."],
    [600, 1000]
  ],
  [
    ["Item 3...", "Item 4..."],
    [400, 600]
  ]
],
result = []
for (var z = 0; z < carry.length; z++) {
  for (var m = 0; m < carry[z].length; m++) {
    for (var t = 0; t < carry[z][m].length; t++) {
     // console.log(carry[z][m][t])
     result[z+t] = []
     result[z+t][m] = carry[z][m][t]
    }
  }
}
console.log(result)

无论如何先谢谢你

最佳答案

你可以拿一个Array#flatMap方法和 map 对。

let data = [[["creative fee (example)"], [1000]], [["Item 1...", "Item 2..."], [600, 1000]], [["Item 3...", "Item 4..."], [400, 600]]],
    result = data.flatMap(([l, r]) => l.map((v, i) => [v, r[i]]));

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }

关于javascript - 如何将 3d 数组转换为 2d 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64786037/

相关文章:

python - 我怎样才能在python中获得-ve数的无符号大小

c# - 如何初始化二维数组中的对象?

c# - 如何在 javascript 中获取 UTC 偏移量(类似于 C# 中的 TimeZoneInfo.GetUtcOffset)

javascript - 在父窗口中访问 iFrame 的 cookie

javascript - 流类型中的组合枚举

c - 在 C 中声明数组大小

javascript - 将数字向下舍入为 1

java - 如果 5<10>5<10 到 n,如何在 java 中检查

javascript - 优化:将多维数组拆分为子数组

arrays - Matlab 最后一维访问 ndimensions 矩阵