Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

รวมสองอาร์เรย์ที่เรียงลำดับเพื่อสร้างอาร์เรย์ที่เรียงลำดับผลลัพธ์ใน JavaScript


เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ของตัวเลขสองชุด ฟังก์ชันควรรวมอาร์เรย์ทั้งสองเข้าด้วยกันเพื่อสร้างอาร์เรย์ที่เรียงลำดับผลลัพธ์แล้วส่งคืนอาร์เรย์นั้น

ตัวอย่างเช่น −

หากทั้งสองอาร์เรย์เป็น −

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

จากนั้นอาร์เรย์เอาต์พุตควรเป็น −

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

ตัวอย่าง

รหัสสำหรับสิ่งนี้จะเป็น −

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);

ผลลัพธ์

และผลลัพธ์ในคอนโซลจะเป็น −

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