1.将数组[1, [2, [3, 4]]]变成[1,2,3,4]
2.将数组[1, [2, [3, 4]]]变成[1, 2, [3, 4]]
function flattenArray(arr) {
let result = [];
for (let i = 0; i < arr.length; i++) {
if (Array.isArray(arr[i])) {
result.push(...arr[i]);
} else {
result.push(arr[i]);
}
}
return result;
}
function flatarr(arr) {
let result = arr.flat(2)
return result;
}
const nestedArray = [1, [2, [3, 4]]];
const flattenedArray = flattenArray(nestedArray);
console.log(flattenedArray);
const flattenedArr = flatarr(nestedArray)
console.log(flattenedArr);
那如果是[1, [2, [3, [4]]]]变成[1, 2, [3, [4]]]怎么做呢
const flattenedArray = nestedArray.reduce((acc, curr) => acc.concat(curr), []);
console.log(flattenedArray); // Output: [1, 2, [3, [4]]]
这里使用了 reduce
方法,将 nestedArray
中的每个元素连接到一个新数组中。这样,它只展平了一层,而内部的嵌套数组仍然保持不变。