JS 扁平化数组方法
-
使用递归
function flattenArray(arr) { let result = []; for (let i = 0; i < arr.length; i++) { if (Array.isArray(arr[i])) { result = result.concat(flattenArray(arr[i])); } else { result.push(arr[i]); } } return result; } const nestedArray = [1, [2, [3, 4], 5], 6]; const flattenedArray = flattenArray(nestedArray); console.log(flattenedArray)
-
使用
Array.prototype.reduce
function flattenArray(arr) { return arr.reduce(function (flat, toFlatten) { return flat.concat(Array.isArray(toFlatten) ? flattenArray(toFlatten) : toFlatten); }, []); } const nestedArray = [1, [2, [3, 4], 5], 6]; const flattenedArray = flattenArray(nestedArray); console.log(flattenedArray);
-
使用
Array.prototype.flat
(ES2019+)const nestedArray = [1, [2, [3, 4], 5], 6]; const flattenedArray = nestedArray.flat(Infinity); console.log(flattenedArray);