今天爱分享给大家带来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;
}
原文链接:http://blog.itblood.com/4627.html,转载请注明出处。

![家务1.1.0完结海阁版本[PC+安卓/3.42G] [神作RPG/AI汉化/双端]](/wp-content/uploads/replace/2025/07/18/6cbe163fb3e4d6e151935e8c443c80bf.webp)