js - 数组扁平化

2021/4/7 18:39:44

本文主要是介绍js - 数组扁平化,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

迭代方式:

function myFlatten(arr){
	if(!arr || !arr.length) return [];
	let newArr = [...arr];
	let flattenArr = [];
	while(newArr.length){
		let item = newArr.shift();
		if(Array.isArray(item)){
			newArr.unshift(...item);
		}else{
			flattenArr.push(item);
		}
	}
	return flattenArr;
}

const arr = [1,2,3,[4,5],6,[7,[8, 9, 10]]];
myFlatten(arr); //[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

递归方式:

function myFlatten(arr){
	return [].concat(Array.isArray(arr) ? myFlatten(arr) : arr)
}
const arr = [1,2,3,[4,5],6,[7,[8, 9, 10]]];
myFlatten(arr); //[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

正则方式:

function myFlatten(arr){
	return JSON.parse('[' + JSON.stringify(arr).replace(/\[|\]/g, '') + ']')
}
const arr = [1,2,3,[4,5],6,[7,[8, 9, 10]]];
myFlatten(arr); //[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

自带API方式:

function myFlatten(arr){
	return arr.flat(Infinity);
}
const arr = [1,2,3,[4,5],6,[7,[8, 9, 10]]];
myFlatten(arr); //[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]


这篇关于js - 数组扁平化的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程