当前位置: 首页 > 编程笔记 >

使用 JavaScript 对数组元素进行深度计数

徐智渊
2023-03-14
本文向大家介绍使用 JavaScript 对数组元素进行深度计数,包括了使用 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
 类似资料:
  • 主要内容:算法总结及实现,优化算法在实际开发中,有很多场景需要我们将数组元素按照从大到小(或者从小到大)的顺序排列,这样在查阅数据时会更加直观,例如: 一个保存了班级学号的数组,排序后更容易分区好学生和坏学生; 一个保存了商品单价的数组,排序后更容易看出它们的性价比。 对数组元素进行排序的方法有很多种,比如冒泡排序、归并排序、选择排序、插入排序、快速排序等,其中最经典最需要掌握的是「冒泡排序」。 以从小到大排序为例,冒泡排序的整体

  • 给定一个数N,我需要找到从1到N至少有一个素数(2,3,5或7)的数的计数。 现在N可以高达10^18。解决这个问题的最佳方法是什么。 例句:设N=100,答案是64。 请帮助解决这个问题。 代码:这是主要功能,但显然不是好方法

  • 问题内容: 我的数组是这样的: 我想将其转换为: 因此,基本上,分组依据。 我尝试着: 我只是不知道如何处理相似组值的分组。 问题答案: 首先,在JavaScript中,使用遍历数组通常不是一个好主意。 因此,您可以尝试执行以下操作: 在这里使用中间对象有助于加快处理速度,因为它可以避免嵌套循环搜索数组。另外,因为使用迭代遍历对象(而不是数组)是合适的。 附录 FWIW,如果要避免在结果数组中出现

  • 本文向大家介绍javascript sort()对数组中的元素进行排序详解,包括了javascript sort()对数组中的元素进行排序详解的使用技巧和注意事项,需要的朋友参考一下 javascript sort()可以对数组中的元素进行排序, 语法格式:arrayObject.sort(sortby) arrayObject是数组对象,sortby为可选项,用来确定元素顺序的函数的名称,如果这

  • 我需要使用JOLT转换一个JSON。我是雷震改造的新手。以下是详细内容。我们正在尝试使用NiFi中的Jolt转换来转换jsons。 这是输入 这是我写的作业(更新感谢哈里克里希纳!) 我期待下面的输出。 我无法使循环工作。这是我从我写的作业中得到的输出。

  • 我试图理解使用中给出的递归对堆栈元素进行排序http://www.geeksforgeeks.org/sort-a-stack-using-recursion/不允许使用while、for…等任何循环结构。我们只能在堆栈S上使用以下ADT函数: is_empty(S):测试堆栈是否为空。 push(S) :向堆栈添加新元素。 Pop(S):从堆栈中删除顶部元素。 top(S) :返回 top 元素