Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Hợp nhất hai mảng đã sắp xếp thành một mảng đã sắp xếp trong JavaScript

Vấn đề

Chúng ta cần viết một hàm JavaScript nhận vào hai mảng số đã sắp xếp. Hàm sẽ gộp tất cả phần tử của cả hai mảng vào mảng mới và trả về mảng đó đã sắp xếp theo cùng thứ tự.

Ví dụ

Dưới đây là mã nguồn:

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

Kết quả

[ 1, 3, 4, 4, 5, 6, 6, 8, 8, 9, 11 ]