Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将三维阵列转换为二维阵列_Javascript_Arrays_Multidimensional Array - Fatal编程技术网

Javascript 如何将三维阵列转换为二维阵列

Javascript 如何将三维阵列转换为二维阵列,javascript,arrays,multidimensional-array,Javascript,Arrays,Multidimensional Array,我想将三维阵列转换为二维阵列 所以我有一个三维阵列,看起来像这样 [ [ ["creative fee (example)"], [1000] ], [ ["Item 1...", "Item 2..."], [600, 1000] ], [ ["Item 3...", "Item 4..."], [400, 600] ] ]

我想将三维阵列转换为二维阵列

所以我有一个三维阵列,看起来像这样

[
  [
    ["creative fee (example)"],
    [1000]
  ],
  [
    ["Item 1...", "Item 2..."],
    [600, 1000]
  ],
  [
    ["Item 3...", "Item 4..."],
    [400, 600]
  ]
]
并希望像这样转换为2d数组(预期结果)

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

var进位=[
[
[“创意费(示例)”,
[1000]
],
[
[“项目1…”,“项目2…”,
[600, 1000]
],
[
[“项目3…”,“项目4…”,
[400, 600]
]
],
结果=[]
对于(var z=0;z
您可以采取一种方法并映射对

let data=[[[“创意费(示例)”]、[1000]、[[“项目1…”、“项目2…”、[6001000]、[[“项目3…”、“项目4…”、[400600]],
结果=data.flatMap([l,r])=>l.map((v,i)=>v,r[i]);
控制台日志(结果)

。作为控制台包装{最大高度:100%!重要;顶部:0;}
使用
flatMap

const result = data.flatMap(([i, j]) => i.map((a, idx) => [a, j[idx]]))
const数据=[
[
[“创意费(示例)”,
[1000]
],
[
[“项目1…”,“项目2…”,
[600, 1000]
],
[
[“项目3…”,“项目4…”,
[400, 600]
]
];
const result=data.flatMap(([i,j])=>i.map((a,idx)=>a,j[idx]]))

console.log(result)
这应该适用于您的情况,您只需要使用spreed操作符(…)来展开项目并将其推入一个数组(项目),然后将结果推入一个新数组(在本例中使用map)


如果您需要避免使用Array.flatMap(它是在EMCAScript 2019中引入的),传统的方法是:

  carry.map(elt => [].concat(...elt))

并非所有浏览器都支持,但可能很有用,看一看:更新了我的答案
var array2D = carry.map(el => {
  var items = [];
  el.forEach(e => items.push(...e))
  return items;
});
  carry.map(elt => [].concat(...elt))