Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

การรวมสองอาร์เรย์ที่จัดเรียงแล้วเป็นอาร์เรย์จัดเรียงใหม่ใน JavaScript

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

ตัวอย่าง:

ถ้าสองอาร์เรย์คือ:

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
]