数组扁平化的实现
数组扁平化(flatten)是将一个多维数组转换为一个一维数组的过程。在 JavaScript 中,可以使用递归或者数组的一些内置方法来实现数组扁平化。
递归实现:
javascript
function flattenArray(arr) {
var result = [];
arr.forEach(function(item) {
if (Array.isArray(item)) {
result = result.concat(flattenArray(item));
} else {
result.push(item);
}
});
return result;
}
使用 reduce() 方法实现:
javascript
function flattenArray(arr) {
return arr.reduce(function(prev, curr) {
return prev.concat(Array.isArray(curr) ? flattenArray(curr) : curr);
}, []);
}
使用 flat() 方法(ES6+):
javascript
// 指定深度
array.flat(depth);
javascript
// 无限深度
array.flat(Infinity);
使用扩展运算符(ES6+):
javascript
var arr = [1, [2, [3, 4]]];
var flattenedArray = [].concat(...arr);