我有这个数组
[[1,2,3][4,5,6][7,8,9]]
如何从这种方式获得
[1,2,3,4,5,6,7,8,9]
不使用Array.map
答案 0 :(得分:1)
您可以这样做:
const data = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
const result = data.reduce((a, c) => a.concat(c), []);
console.log(result);
答案 1 :(得分:0)
使用Array#flatMap
方法展平返回的数组。
let data = [
[1, 2, 3],[4, 5, 6],[7, 8, 9]
];
console.log(data.flatMap(a => a))
或使用Array#reduce
方法迭代并简化为单个数组。
let data = [
[1, 2, 3],[4, 5, 6],[7, 8, 9]
];
console.log(data.reduce((arr, a) => [...arr, ...a]), [])
或者甚至可以使用为此目的创建的内置Array#flat
方法。如果您想添加嵌套数组,则默认情况下指定depth
argument为1
。
let data = [
[1, 2, 3],[4, 5, 6],[7, 8, 9]
];
console.log(data.flat())
答案 2 :(得分:0)
答案 3 :(得分:0)
您可以使用flat()
const arr = [[1,2,3],[4,5,6],[7,8,9]]
console.log(arr.flat())
如果您不想使用flat()
,则可以使用push()
和散布运算符。
const arr = [[1,2,3],[4,5,6],[7,8,9]]
const res = [];
arr.forEach(x => res.push(...x))
console.log(res)
答案 4 :(得分:0)
flat()
方法将创建一个新数组,其中所有子数组元素都将递归地连接到其中,直到指定的深度为止。
var arr = [[1,2,3],[4,5,6],[7,8,9]];
var res = arr.flat();
console.log(res);