Chúng ta cần viết hàm nhận vào mảng, chỉ số bắt đầu và chỉ số kết thúc. Hàm đảo ngược đoạn mảng giữa hai chỉ số đó.
Ví dụ:
Mảng:
const arr = [2, 6, 5, 8, 3, 5, 2, 6, 7];
start=3, end=7 => kết quả:
const output = [2, 6, 5, 2, 5, 3, 8, 6, 7];
Ví dụ
Dưới đây là đoạn code:
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);Kết quả
Đoạn code sẽ in ra console:
[ 2, 6, 5, 2, 5, 3, 8, 6, 7 ]