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))