递归实现数组的扁平化
生活随笔
收集整理的這篇文章主要介紹了
递归实现数组的扁平化
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
數(shù)組扁平化即將多維數(shù)組轉(zhuǎn)化為一維數(shù)組:
例: [1,2,3,4,5,[2,3,4,[6,10]]]==>[1,2,3,4,5,2,3,4,6,10];
實(shí)現(xiàn)數(shù)組扁平化的方法有好幾種,在這里只說一種我比較常用的,自己感覺比較核心的方法,即遍歷數(shù)組arr,若arr[i]為數(shù)組則遞歸遍歷,直至arr[i]不為數(shù)組然后與之前的結(jié)果concat。
代碼實(shí)現(xiàn):
function flatten(arr) {var res = [];arr.map(item => {if(Array.isArray(item)) {res = res.concat(flatten(item));} else {res.push(item);}});return res; }或者:
var arr = [[1,2,3],4,5,6,[[7]],[]] //多維數(shù)組//將需要轉(zhuǎn)化的數(shù)組,以及最后需要返回的數(shù)組進(jìn)行傳參 function flatten(array,result = []){ //循環(huán)數(shù)組中的每一項(xiàng),如果這一項(xiàng)是數(shù)組,則再次調(diào)用這個(gè)函數(shù), //否則直接將這項(xiàng)push到結(jié)果中,并且return出來for(var i of array){ if(Array.isArray(i)){flatten(i,result)}else{result.push(i)}}return result;}console.log(flatten(arr))總結(jié)
以上是生活随笔為你收集整理的递归实现数组的扁平化的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微信小程序(登录、分享、支付)
- 下一篇: 大专计算机知识,大专计算机应用基础试题及