JavaScript实现纯数组扁平化(数组降维)
Posted web半晨
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript实现纯数组扁平化(数组降维)相关的知识,希望对你有一定的参考价值。
目录
1、使用reduce方法和递归实现
function flatten(arr)
return arr.reduce((result, item) =>
return result.concat(Array.isArray(item) ? flatten(item) : item);
, []);
console.log(flatten([1, [2, 3, [4, 5]]]));
// [1, 2, 3, 4, 5]
2、使用toString和split实现
function flatten(arr)
// 返回字符串类型的数组
// return arr.toString().split(",");
// 返回数字类型的数组
return arr.toString().split(",").map((item) => Number(item));
console.log(flatten([1, [2, 3, [4, 5]]]));
// [1, 2, 3, 4, 5]
3、使用join和split实现
function flatten(arr)
return arr.join(",").split(",").map((item) => parseInt(item));
console.log(flatten([1, [2, 3, [4, 5]]]));
4、使用递归实现
function flatten(arr)
let res = [];
arr.map((item) =>
if (Array.isArray(item))
res = res.concat(flatten(item));
else
res.push(item);
);
return res;
console.log(flatten([1, [2, 3, [4, 5]]]));
5、使用es6的扩展运算符实现
console.log([].concat(...[1, 2, 3, [4, 5]]));
6、使用whil、some和concat实现
function flatten(arr)
while (arr.some((item) => Array.isArray(item)))
arr = [].concat(...arr);
return arr;
console.log(flatten([1, [2, 3, [4, 5]]]));
7、相关文章
以上是关于JavaScript实现纯数组扁平化(数组降维)的主要内容,如果未能解决你的问题,请参考以下文章
JavaScript实现扁平数组结构与JSON树形结构相互转换递归reducecontinuepushconcatfor of