扁平化数组的扁平化其实就是将一个嵌套的多层数组数组(嵌套可以是任意层数)转化为只有一层的数组。例如vararr=[1,[2,[3,4,5]]];//[1,2,3,4,5]递归实现方法如下leta=[1,[2,[3,4],5]]];functionflatten(arr){letresult=[]for(leti=0;i{//递归中的判断逻辑和关键判断逻辑代码类似returnprev.concat(Array.isArray(next)?flatten(next):next)},[])}使用展开运算符functionflatten(arr){//只要arr数组中有数组元素,就继续循环while(arr.some(item=>Array.isArray(item))){//扩展数组,连接空数组arr=[].concat(...arr)}returnarr}split和toString()方法一起工作functionflatten(arr){//toString()方法将数组转换为1,2,3,4,5returnarr.toString().split(",")}ES6中的flat方法varnewArray=arr.flat([深度])深度可选。指定提取嵌套数组的结构深度,默认值为1返回值。包含数组和子数组中所有元素的新数组。Infinity表示总是扩展functionflatten(arr){returnarr.flat(Infinity)}正则和JSON方法来处理functionflatten(arr){letstr=JSON.stringify(arr);//过滤所有方括号str=str.replace(/(\[|\])/g,'');str='['+str+']';返回JSON.parse(str);}在线网站https://regexper.com/可以将正则模式分析成通俗易懂的可视化逻辑脑图