数组扁平化

前言

题目:将[1,2,[3,[4,5]]]转化成[1,2,3,4,5]。

概述

二维数组与多维数组都有哪些方法。

详述

递归(通用)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
var arr = [1, 2, [3, [4, 5]]];

function flatten(arr) {
var res = [];
for(var i = 0; i < arr.length; i++) {
if(Array.isArray(arr[i])) {
res = res.concat(flatten(arr[i]));
} else {
res.push(arr[i]);
}
}
return res;
}

var result = flatten(arr);
console.log(result);

简单二维

1
2
3
4
5
6
const arr = [11, [22, 33], [44, 55], 66];
const flatArr = arr.join().split(','); // ["11", "22", "33", "44", "55", "66"]


const arr = [11, [22, 33], [44, 55], 66];
const flatArr = arr.toString().split(','); // ["11", "22", "33", "44", "55", "66"]

flat()方法(兼容问题)

1
2
3
4
5
[1, 2, [3, [4, 5]]].flat()
// [1, 2, 3, [4, 5]]

[1, 2, [3, [4, 5]]].flat(2)
// [1, 2, 3, 4, 5]

后记

参考:https://www.cnblogs.com/mengfangui/p/9485703.html