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

Làm cách nào để đảo ngược một phần của mảng trong JavaScript?

Chúng tôi được yêu cầu viết một hàm JavaScript có trong một mảng, một chỉ mục bắt đầu và một chỉ mục kết thúc. Hàm sẽ đảo ngược phần của mảng giữa chỉ mục bắt đầu và chỉ mục kết thúc.

Ví dụ -

Nếu mảng là -

const arr = [2, 6, 5, 8, 3, 5, 2, 6, 7];

Và chỉ số bắt đầu và chỉ số kết thúc lần lượt là 3, 7, sau đó mảng phải được đảo ngược thành -

const output = [2, 6, 5, 2, 5, 3, 8, 6, 7];

Ví dụ

Sau đây là mã -

const arr = [2, 6, 5, 8, 3, 5, 2, 6, 7];
const start = 3, end = 7;
const reverse = arr => {
   const { length: l } = arr;
   for(let i = 0; i < Math.floor(l/2); i++){
      const temp = arr[i];
      arr[i] = arr[l-i-1];
      arr[l-i-1] = temp;
   };
   return arr;
};
const reverseBetween = (arr, start, end) => {
   const num = Math.min(end - start, arr.length - start);
   arr.splice(start, 0, ...reverse(arr.splice(start, num)));
}
reverseBetween(arr, start, end);
console.log(arr);

Đầu ra

Điều này sẽ tạo ra kết quả sau trong bảng điều khiển -

[
   2, 6, 5, 2, 5,
   3, 8, 6, 7
]