使用 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
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP