[英]Create flattened array by mapping arrays
我有以下一个或多个数组:
const aa = [
[1,2,3],
[4,5,6],
... could be more here
];
我想创建一个看起来像这样的数组:
[1,2,3,4,5,6]
我目前有:
const result = aa.map(a => [...a]);
result
是:
[[1,2,3],[4,5,6]]
我知道如何使用以下方法展平数组:
var flattenedArray = [].concat(...result);
但是我只是想知道是否可以在map
做任何其他操作来创建所需的结果,而无需执行额外的“展平”步骤?
join
函数,然后使用parse
函数解析结果。 const aa = [ [1, 2, 3], [4, 5, 6] ]; console.log(JSON.parse(`[${aa.join()}]`));
.as-console-wrapper { max-height: 100% !important }
Spread operator
const bb = [ [1, 2, 3], [4, 5, 6] ]; let newArray = [], i = bb.length; while (i --> 0) newArray = [...newArray, ...bb[bb.length - i - 1]]; console.log(newArray);
如果使用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])), array = [[1, 2, 3], [4, 5, [6, 7, 8]]], result = flat(array); console.log(result);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.