如何使用 JavaScript 遞迴迴圈一個數組並返回專案個數?


我們必須編寫一個函式,比如 searchRecursively(),它接收一個數組和一個搜尋查詢,並返回巢狀陣列中該搜尋查詢的計數。

例如,如果陣列由以下形式給出:-

const names = ["rakesh", ["kalicharan", "krishna", "rakesh", "james", ["michael", "nathan", "rakesh", "george"]]];

那麼,

searchRecursively(names, ‘’rakesh’);

應該返回 3,因為它在陣列中總共出現了 3 次。因此,讓我們為這個遞迴函式編寫程式碼:-

示例

const names = ["rakesh", ["kalicharan", "krishna", "rakesh", "james",
["michael", "nathan", "rakesh", "george"]]];
const searchRecursively = (arr, query, count = 0, len = 0) => {
   if(len < arr.length){
      if(Array.isArray(arr[len])){
         return searchRecursively(arr[len], query, count, 0);
      };
      if(arr[len] === query){
         return searchRecursively(arr, query, ++count, ++len);
      };
      return searchRecursively(arr, query, count, ++len);
   };
   return count;
};
console.log(searchRecursively(names, "rakesh"));

輸出

控制檯中的輸出為:-

3

更新於: 24-8-2020

瀏覽 2K+ 次

開啟你的 職業生涯

完成課程後獲得認證

開始
廣告
© . All rights reserved.