数组扁平化的处理
Posted 咖啡壶子
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数组扁平化的处理相关的知识,希望对你有一定的参考价值。
第一种:使用 es6中的flat方法
const arr = [1,[2,[3,[4,5]]],6]
// 方法一:数组自带的扁平化方法,flat的参数代表的是需要展开几层,如果是Infinity的话,就是嵌套几层,全部都展开
console.log(arr.flat(Infinity))
第二种:使用正则表达式
const arr = [1,[2,[3,[4,5]]],6]
function flatten(arr)
// 使用正则表达式匹配字符,并替换
let arr1 = JSON.stringify(arr).replace( /\\[|\\]/g ,'')
return JSON.parse('['+arr1+ ']')
console.log(flatten(arr));
第三种:使用递归
const arr = [1,[2,[3,[4,5]]],6]
var array=[]
function flatten(arr)
// 判断是否是数组
for(let i=0 ;i<arr.length; i++)
if(Array.isArray(arr[i]))
flatten(arr[i])
else
array.push(arr[i])
return array
console.log(flatten(arr));
第四种:使用reduce
const arr = [1,[2,[3,[4,5]]],6]
var array=[]
function flatten(arr)
return arr.reduce((sum,value)=>
return sum.concat(Array.isArray(value) ? flatten(value) :value)
,[])
console.log(flatten(arr));
第五种:使用 …扩展运算符
const arr = [1,[2,[3,[4,5]]],6]
function flat(arr)
while (arr.some(item => Array.isArray(item)))
arr = [].concat(...arr);
return arr;
console.log(flat(arr));
以上是关于数组扁平化的处理的主要内容,如果未能解决你的问题,请参考以下文章