使用 JavaScript 深度計算陣列的元素


問題

我們需要編寫一個 JavaScript 函式,接受一個包含元素的巢狀陣列,並返回陣列中存在的元素的深度計數。

輸入

const arr = [1, 2, [3, 4, [5]]];

輸出

const output = 7;

因為第 1 級有 2 個元素,第 2 級有 2 個元素,第 3 級有 1 個元素,所以深度計數為 7。

示例

以下是程式碼 -

 線上演示

const arr = [1, 2, [3, 4, [5]]];
const deepCount = (arr = []) => {
   return arr
   .reduce((acc, val) => {
      return acc + (Array.isArray(val) ? deepCount(val) : 0);
   }, arr.length);
};
console.log(deepCount(arr));

程式碼說明

我們使用 Array.prototype.reduce() 方法來遍歷陣列,如果在任何迭代中遇到巢狀陣列,則遞迴呼叫我們的函式。

輸出

7

更新於: 17-4 月-2021

2K+ 瀏覽

開啟您的 職業生涯

完成課程,獲得認證

開始學習
廣告
© . All rights reserved.