在 JavaScript 中合并嵌套数组以形成一维数组
问题
我们需要编写一个JavaScript函数,它接受两个嵌套数组arr1和arr2作为第一个和第二个参数。
我们的函数应该创建并返回第三个数组,该数组包含arr1和arr2的所有元素,但扁平化为一维
例如,如果函数的输入是-
const arr1 = [
1, [
2, [
4, 5, [
6
]
]
]
];
const arr2 = [
11, 12, [
16, 18, [
19, 21, [
23
]
]
]
];那么输出应该是-
const output = [1, 2, 4, 5, 6, 11, 12, 16, 18, 19, 21, 23];
示例
以下是代码-
const arr1 = [
1, [
2, [
4, 5, [
6
]
]
]
];
const arr2 = [
11, 12, [
16, 18, [
19, 21, [
23
]
]
]
];
const flattenAndMerge = (arr1 = [], arr2 = []) => {
const res = [];
const flatten = (arr = []) => {
for(let i = 0; i < arr.length; i++){
if(Array.isArray(arr[i])){
flatten(arr[i]);
}else if(typeof arr[i] === 'number'){
res.push(arr[i])
};
};
};
flatten(arr1);
flatten(arr2);
return res;
};
console.log(flattenAndMerge(arr1, arr2));输出结果以下是控制台输出-
[ 1, 2, 4, 5, 6, 11, 12, 16, 18, 19, 21, 23 ]