今天爱分享给大家带来js中什么是数组扁平化,实现扁平化的方法有哪些【面试题详解】,希望能够帮助到大家。
数组扁平化:一个多维数组变为一维数组,方法如下:
1.flat( ES 6)
flat() 方法会按照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组中的元素合并为一个新数组返回。
let newArray = arr.flat([depth]); depth值可选: 指定要提取嵌套数组的结构深度,默认值为 1,不确定层级也可写 `Infinity`。
2.reduce
function flatten(arr) {  
    return arr.reduce((result, item)=> {
        return result.concat(Array.isArray(item) ? flatten(item) : item);
    }, []);
}
3.String & split
function flatten(arr) {
    return arr.toString().split(',').map(function(item) {
        return Number(item);
    })
} 
4.join & split
function flatten(arr) {
    return arr.join(',').split(',').map(function(item) {
        return parseInt(item);
    })
}
5.扩展运算符
[].concat(...[1, 2, 3, [4, 5]]);  // [1, 2, 3, 4, 5]
也可以做一个遍历,若 arr 中含有数组则使用一次扩展运算符,直至没有为止,如下:
扩展运算符每次只能展开一层数组
function flatten(arr) {
    while(arr.some(item=>Array.isArray(item))) {
        arr = [].concat(...arr);
    }
    return arr;
}
6.递归
function flatten(arr) { 
  var res = [];
  arr.map(item => {
    if(Array.isArray(item)) {
      res = res.concat(flatten(item));
    } else {
      res.push(item);
    }
  }); 
  return res;
}
			    						    						    						    					    		
			    					    				    					    			 原文链接:https://blog.itblood.com/4627.html,转载请注明出处。		    			
		            
![欲望之影v0.7.5 AI版[PC+安卓/21.2G/更新]Shadows of Desire [v0.7.5] [神作SLG/汉化/沙盒]](/wp-content/uploads/replace/2025/10/23/961783b103826acd719e2e650031879d.webp)