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

代码说明

我们使用了数组。遍历数组的方法,如果在任何迭代中遇到嵌套数组,都将递归调用函数。prototype.reduce()

输出结果

7