本文共 826 字,大约阅读时间需要 2 分钟。
方法一:使用flat()
var arr = [1,2,[3,4],[5,6,7,[8,9,10]],11]var newArr = arr.flat(Infinity);console.log(newArr)
方法二:使用正则表达式
const res2 = JSON.stringify(arr).replace(/\[|\]/g,'').split(',');console.log(res2);
但是数据类型会变成字符串
方法三:改良版本的正则表达式
const res3 = JSON.parse('[' + JSON.stringify(arr).replace(/\[|\]/g,'') + ']');console.log(res3)
方法四:使用reduce()
const flatten = arr =>{ return arr.reduce( (pre,cur) =>{ return pre.concat(Array.isArray(cur) ? flatten(cur):cur); },[])}const res4 = flatten(arr);console.log(res4)
方法五:递归
const res5 = [];const fn = arr =>{ for(let i = 0;i < arr.length; i++){ if(Array.isArray(arr[i])) { fn(arr[i]);} else{ res5.push(arr[i]);} }}fn(arr);console.log(res5)
转载地址:http://zych.baihongyu.com/