合併巢狀陣列以在 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 ]
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP