欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

数组扁平化解析

程序员文章站 2022-05-16 09:36:15
数组扁平化 数组扁平化实现方法: 1.递归 循环遍历数组,如果数组元素为一个数组,则递归调用扁平化方法。使用array.isarray()来判断是否为数组。 //1.递...

数组扁平化

数组扁平化实现方法:

1.递归

循环遍历数组,如果数组元素为一个数组,则递归调用扁平化方法。使用array.isarray()来判断是否为数组。

//1.递归
function flatten(arr){
	var result=[];
	for(var i=0;i

2.tostring()

这种方法只适用于数组元素均为数字类型。

//2.tostring 适用于数组元素为数字
function flatten(arr){
	return arr.tostring().split(",").map(function(item){
		return +item;
	});
}

3.reduce

es5的array新增的一种针对数组逐项处理方法。reduce()接受一个函数作为累加器,第二个可选参数为赋予的初始值。

//3. es5的reduce
function flatten(arr){
	return arr.reduce(function(prev,cur){
		return prev.concat(array.isarray(cur)flatten(cur):cur);
	},[]);
}

4.es6的扩展运算符

es6增加了扩展运算符,用于去除参数对象的所有可遍历属性,并拷贝到当前对象中。

//4.es6的扩展运算符
function flatten(arr){
	while(arr.some(item => array.isarray(item))){
		arr=[].concat(...arr);
	}
	return arr;
}
;i++){>