本文主要是介绍数组扁平化的处理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
第一种:使用 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));
这篇关于数组扁平化的处理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!