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、相关文章

博客园-js5种方式实现数组扁平化

以上是关于JavaScript实现纯数组扁平化(数组降维)的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript实现树形扁平化(数组降维)

-----js实现数组扁平化-----

JavaScript数组 API 实现的几个常见操作

JavaScript实现扁平数组结构与JSON树形结构相互转换递归reducecontinuepushconcatfor of

前端面试 JavaScript— JS中将数组扁平化有哪些方法?

前端面试 JavaScript— JS中将数组扁平化有哪些方法?