如何在 JavaScript 中翻轉陣列的一部分?


我們需要編寫一個 JavaScript 函式,該函式接收一個數組、一個起始索引和一個結束索引。該函式應反轉起始索引和結束索引之間的陣列部分。

例如 −

如果陣列為 −

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

並且起始索引和結束索引分別為 3、7,則陣列應反轉為 −

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

示例

以下是程式碼 −

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

輸出

這將在控制檯中生成以下輸出 −

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

更新於: 30-9 月-2020

249 次瀏覽

開啟您的 職業生涯

完成課程獲得認證

開始
廣告
© . All rights reserved.