使用 JavaScript 透過遞迴查詢陣列的中間元素


我們需要編寫一個數組函式,假設函式名為 findMiddle,該函式返回陣列中中間的元素,而不訪問其長度屬性,也不使用任何內建的迴圈。如果陣列包含奇數個元素,則返回一箇中間元素,或者,如果陣列包含偶數個元素,則返回一個包含兩個中間元素的陣列。

那麼,讓我們為該函式編寫程式碼。正如你已經猜到的那樣,我們將利用遞迴查詢這些元素。遞迴函式的程式碼為:

示例

const arr = [1, 2, 3, 4, 5, 6, 7];
const array = [1, 2, 3, 4, 5, 6, 7, 8];
const findMiddle = (arr, ind = 0) => {
   if(arr[ind]){
      return findMiddle(arr, ++ind);
   };
   return ind % 2 !== 0 ? [arr[(ind-1) / 2]] : [arr[(ind/2)-1],
   arr[ind/2]];
};
console.log(findMiddle(arr));
console.log(findMiddle(array));

輸出

控制檯中的輸出為:

[ 4 ]
[ 4, 5 ]

更新於:2020-08-25

372 次瀏覽

開啟你的 職業生涯

完成課程即可獲得認證

立即開始
廣告
© . All rights reserved.