[你必须掌握的] 多种实现 flatten 函数的方法

arr =[1,2,3,[7,9],[8,9,[10,1]]]

  1. 使用 flat函数本身
arr.flat(Infinity)
  1. 采用 数组字符串特性
arr.join().split(',').map(Number)
  1. 采用 迭代
const flatten=arr=>{
	const result=[]
	while(arr.some(item=>Array.isArray(item))){
		result.concat(...arr)
	}
	return result
}
  1. 采用 es6+写法
const flatten=arr=>arr.reduce((acc,cur)=>(
Array.isArray(cur)?
 [...acc,...flatten(cur)]
 :
 [...acc,cur])
,[])

你可能感兴趣的:(#,js系列)