Computer >> Máy Tính >  >> Lập trình >> Javascript

Hợp nhất hai mảng đã sắp xếp để tạo thành một mảng được sắp xếp theo kết quả trong JavaScript


Chúng tôi bắt buộc phải viết một hàm JavaScript có hai mảng số được sắp xếp. Hàm nên hợp nhất hai mảng với nhau để tạo thành một mảng được sắp xếp theo kết quả và trả về mảng đó.

Ví dụ -

Nếu hai mảng là -

const arr1 = [2, 6, 6, 8, 9];
const arr2 = [1, 4, 5, 7];

Sau đó, mảng đầu ra phải là -

const output = [1, 2, 4, 6, 6, 7, 8, 9];

Ví dụ

Mã cho điều này sẽ là -

const arr1 = [2, 6, 6, 8, 9];
const arr2 = [1, 4, 5, 7];
const mergeSortedArrays = (arr1 = [], arr2 = []) => {
   let m = arr1.length;
   let n = arr2.length;
   let currentIndex = m + n;
   const checkNum1HasLargerNumber = (a, b) => {
      if (a < 0) {
         return false;
      };
      if (b < 0) {
         return true;
      };
      return arr1[a] >= arr2[b];
   };
   m −= 1;
   n −= 1;
   while (currentIndex−−) {
      let hasNums1LargerNumber = checkNum1HasLargerNumber(m, n);
      arr1[currentIndex] = hasNums1LargerNumber ? arr1[m] : arr2[n];
      if (hasNums1LargerNumber) {
         m −= 1;
      } else {
         n −= 1;
      }
   };
};
mergeSortedArrays(arr1, arr2);
console.log(arr1);

Đầu ra

Và đầu ra trong bảng điều khiển sẽ là -

[
   1, 2, 4, 5, 6,
   6, 7, 8, 9
]