多维数组扁平化,Python数组扁平化
数组扁平化就是把多维数组转为一维数组
比如
[1, [2,3,3],3,[1, [2,3,8]],8] 转为[1,2,3,3,3,1,2,3,8,8] 1.[].concat(…arr) var msg=[1,[2,3,3],3,[1,[2,3,8]],8]函数flatten(arr){ while(arr。some(item=数组。isarray(item))){ arr=[].串联(.arr)}返回arr }控制台。log(flatten(msg))2。reduce var arr=[1,[2,3,3],3,[1,[2,3,8]],8]function flatten(arr 1){ return arr 1。reduce((pre,cur,index)={ return pre。concat(数组。是数组(cur)?flatten(cur): cur) },[])}控制台。log(flatten(arr))//判断是不是数组,如果是数组,就递归,不是就直接取当前的值3.toString分裂了. map[Number] var arr=[1,[2,3,3],3,[1,[2,3,8]],8]function flatten(arr 1){ return arr 1。tostring().拆分(,)。map(Number)}控制台。log(flatten(arr))//转为字符串再切割成数组//.地图[数字]是把[1, 2]转为[1, 2] //.映射[字符串]是把[1, 2]转为[1 , 2 ]4 .join split map[Number]var arr=[1,[2,3,3],3,[1,[2,3,8]],8]函数flatten(arr 1){ console。日志(数组1。加入().拆分(,)。地图(数字))//返回arr1.toString().拆分(,)。map(Number)}控制台。log(flatten(arr))//.地图[数字]是把[1, 2]转为[1, 2] //.映射[字符串]是把[1, 2]转为5 .地图递归var arr=[1,[2,3,3],3,[1,[2,3,8]],8]函数flatten(arr 1){ var result=[]arr 1。映射(item={ array。是数组(项)?结果=结果。concat(flatten(item)):结果。push(item)})返回结果}控制台。log(flatten(arr))6。tostring().拆分(,),然后地图,然后Number(item) //var s1=[1,[2,3,3],3,[1,[2,3,8]],8]函数flatten(arr){ return arr。tostring().拆分(,)。map(item=Number(item))}控制台。原木(展平(S1))7 .ES6中的平坦(无穷大)拉平多维数组//const arr=[1,2,3,[4,5,6,[7]]]控制台。日志(排列。flat(Infinity))//[1,2,3,4,5,6,7] //ES6中的扁平()拉平多维数组,无穷大是关键字,不管多少层都可以拉平//平面(名词)里面如果是数字的话,就拉平n层总结就是判断子元素是不是数组,如果是数组,就再次递归,如果不是,就直接推就可以啦
参考这位大佬的,代码我自己写的
https://www.cnblogs.com/wind-lanyan/p/9044130.html
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。