使用 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