Javascript 通过映射数组创建展平数组
我有以下数组:Javascript 通过映射数组创建展平数组,javascript,Javascript,我有以下数组: const aa = [ [1,2,3], [4,5,6], ... could be more here ]; 我想创建一个如下所示的数组: [1,2,3,4,5,6] 我目前有: const result = aa.map(a => [...a]); 结果是: [[1,2,3],[4,5,6]] 我知道如何使用以下方法展平阵列: var flattenedArray = [].concat(...result); 但我只是想知道我是否可以在map中
const aa = [
[1,2,3],
[4,5,6],
... could be more here
];
我想创建一个如下所示的数组:
[1,2,3,4,5,6]
我目前有:
const result = aa.map(a => [...a]);
结果是:
[[1,2,3],[4,5,6]]
我知道如何使用以下方法展平阵列:
var flattenedArray = [].concat(...result);
但我只是想知道我是否可以在map
中做些不同的事情,以创建我想要的结果,而不需要额外的“展平”步骤?执行join
函数,然后使用parse
函数解析结果。
const aa=[
[1, 2, 3],
[4, 5, 6]
];
log(JSON.parse(`[${aa.join()}]`)代码>
。作为控制台包装器{
最大高度:100%!重要
}
如果您使用reduce()
而不是map()
,您可以一步完成此操作
const aa=[
[1,2,3],
[4,5,6]
];
const result=aa.reduce((r,e)=>[…r,…e],]);
console.log(result)
您可以进行检查并将映射的扁平阵列连接到新阵列
var flat=a=>[].concat(…(Array.isArray(a)?a.map(flat):[a]),
数组=[[1,2,3],[4,5,6,7,8]],
结果=平面(阵列);
控制台日志(结果)
返回字符串,而不是数组.map()
转换数组中的每个元素。.map()
前后的元素数量相同。您的.map()
步骤本质上是一个不可操作的步骤;最终得到的是相同的嵌套数组。使用map()
无法展平数组。它总是返回一个与原始数组长度相同的数组,而使用展平会生成一个不同长度的数组。Reduce是不必要的。这与此相同:[].concat(…嵌套)
@greim-Nice-solution。