使用 JavaScript 將兩個已排序的數組合併成一個已排序的陣列
問題
我們需要編寫一個 JavaScript 函式,該函式接受兩個已排序的數字陣列,我們的函式應將兩個陣列的所有元素合併到一個新陣列中,並按相同順序返回該新陣列。
示例
以下是程式碼 −
const arr1 = [1, 3, 4, 5, 6, 8]; const arr2 = [4, 6, 8, 9, 11]; const mergeSortedArrays = (arr1 = [], arr2 = []) => { const res = []; let i = 0; let j = 0; while(i < arr1.length && j < arr2.length){ if(arr1[i] < arr2[j]){ res.push(arr1[i]); i++; }else{ res.push(arr2[j]); j++; } }; while(i < arr1.length){ res.push(arr1[i]); i++; }; while(j < arr2.length){ res.push(arr2[j]); j++; }; return res; }; console.log(mergeSortedArrays(arr1, arr2));
輸出
[ 1, 3, 4, 4, 5, 6, 6, 8, 8, 9, 11 ]
廣告