JavaScript扁平化数组
假设我们有一个无限嵌套的数组,其结构如下:
var arr = [
[1, 2, 2],
[3, 4, 5, 6],
[6, 7, 8, 9,
[10, 11, 12,
[12, 13, 14,
[15, 16],
17],
18],
19]
];
基本上就是一个数组内部的所有元素既有可能是数字,也可能是数组。
我们需要将其扁平化成一维数组。
// 扁平化数组
function flat(a) {
var res = [];
for (let e of a) {
if (Object.prototype.toString.call(e) === "[object Array]") {
// 判断其是数组,则递归
res = res.concat(flat(e))
} else {
res.push(e);
}
}
return res;
}
测试结果: