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