首页 > 其他分享 >写一个方法统计给定数组中重复元素的次数

写一个方法统计给定数组中重复元素的次数

时间:2024-12-22 09:56:27浏览次数:3  
标签:duplicates 重复 元素 element 次数 给定 数组

在前端开发中,你可以使用JavaScript来编写一个方法,用于统计给定数组中重复元素的次数。以下是一个简单的示例:

function countDuplicates(arr) {
  // 创建一个空对象,用于存储元素及其出现的次数
  const elementCount = {};

  // 遍历数组,统计每个元素出现的次数
  arr.forEach((element) => {
    if (elementCount[element]) {
      // 如果元素已经存在,则增加其计数
      elementCount[element]++;
    } else {
      // 如果元素不存在,则初始化其计数为1
      elementCount[element] = 1;
    }
  });

  // 创建一个新数组,用于存储重复元素及其次数
  const duplicates = [];

  // 遍历元素计数对象,找出重复元素
  Object.entries(elementCount).forEach(([element, count]) => {
    if (count > 1) {
      // 如果元素出现次数大于1,则将其添加到重复元素数组中
      duplicates.push({ element, count });
    }
  });

  // 返回重复元素数组
  return duplicates;
}

// 示例用法
const array = [1, 2, 3, 4, 2, 3, 5, 6, 2, 7, 8, 9, 1];
const duplicates = countDuplicates(array);
console.log(duplicates);
// 输出: [ { element: '1', count: 2 }, { element: '2', count: 3 }, { element: '3', count: 2 } ]

这个方法首先遍历输入数组,并使用一个对象(elementCount)来跟踪每个元素出现的次数。然后,它遍历这个对象,找出出现次数大于1的元素,并将它们添加到一个新数组(duplicates)中。最后,它返回这个包含重复元素及其次数的新数组。

注意,这个方法假设输入数组中的元素是字符串或数字。如果数组中包含其他类型的元素(如对象或数组),则可能需要修改比较逻辑以确保正确识别重复项。

另外,如果你只关心重复元素的次数,而不关心具体是哪些元素重复了,你可以稍微修改这个方法,使其返回一个包含重复次数的数组,而不是包含元素和次数的对象数组。

标签:duplicates,重复,元素,element,次数,给定,数组
From: https://www.cnblogs.com/ai888/p/18621809

相关文章

  • 写一个方法反转给定的字符串
    在前端开发中,你可以使用JavaScript来反转一个给定的字符串。以下是一个简单的方法,使用JavaScript的内置函数来实现字符串的反转:functionreverseString(str){returnstr.split('').reverse().join('');}//使用示例varoriginalString="Hello,World!";varreversed......
  • 实现一个数组的push方法
    在JavaScript中,数组已经有一个内置的push方法,用于向数组的末尾添加一个或多个元素,并返回新的长度。但是,如果你想自己实现一个类似的函数,以下是一个简单的方式:Array.prototype.myPush=function(...items){for(letitemofitems){this[this.length]=item;......
  • 实现一个数组的pop方法
    在前端开发中,JavaScript是一种常用的编程语言,它内置了对数组的支持,包括pop()方法。pop()方法用于删除并返回数组的最后一个元素。但是,如果你想自己实现一个pop()方法的话,以下是一个简单的示例:functionmyPop(array){//检查数组是否为空if(array.length===0......
  • Golang学习笔记_13——数组
    Golang学习笔记_10——SwitchGolang学习笔记_11——指针Golang学习笔记_12——结构体文章目录数组1.定义2.访问和修改3.多维数组4.计算数组长度5.数组作为函数参数6.遍历7.数组的内存表示源码数组Go语言中的数组是一种具有固定长度、相同类型元素的集......
  • 新能源汽车大屏可视化第三次数据存储
    任务:将数据存放到temp.csv链接:1.排行页面https://www.dongchedi.com/sales2.参数页面https://www.dongchedi.com/auto/params-carIds-x-9824完善打印:1.[{‘series_id’:5952,‘series_name’:‘海鸥’,‘image’:‘https://p3-dcd.byteimg.com/img/tos-cn-i-d......
  • 88. 合并两个有序数组
    合并两个有序数组给你两个按非递减顺序排列的整数数组nums1和nums2,另有两个整数m和n,分别表示nums1和nums2中的元素数目。请你合并nums2到nums1中,使合并后的数组同样按非递减顺序排列。注意:最终,合并后数组不应由函数返回,而是存储在数组nums1中。为了应对......
  • 2024-12-16:使数组中所有元素相等的最小开销。用go语言,给定一个整数数组 nums 以及两个
    2024-12-16:使数组中所有元素相等的最小开销。用go语言,给定一个整数数组nums以及两个整数cost1和cost2,你可以进行以下两种操作多次:1.选择数组中的某个元素的下标i,将nums[i]增加1,花费为cost1。2.同时选择数组中两个不同的下标i和j,将nums[i]和nums[j]都增加......
  • 动态规划算法-----子数组系列
    1.引言动态规划(DynamicProgramming,DP)是一个强大的算法设计方法,广泛应用于解决最优化问题。它的核心思想是通过将大问题分解为小问题,并利用子问题的解来构建大问题的解。动态规划的核心特点是“重叠子问题”和“最优子结构”。在这篇博客中,我们将探讨动态规划算法在解决“......
  • 动态规划算法-子数组系列之_等差数列划分
    413.等差数列划分( Leetcode)等差数列划分题目描述如果一个数列 至少有三个元素 ,并且任意两个相邻元素之差相同,则称该数列为等差数列。例如,[1,3,5,7,9]、[7,7,7,7] 和 [3,-1,-5,-9] 都是等差数列。给你一个整数数组 nums ,返回数组 nums 中所有为等差数组的 子......
  • TIA环境下SCL编程练习:产生m到n之间的随机整数,存入数组
    假设需要读取100个随机数,存入有100个成员的数组。做这个练习是为了学习一下SCL编程。随机数使用系统时钟纳秒数来线性转换。新建项目,选用1500PLC(6ES7513-1AL02-0AB0,当然可以选用其它型号),设定本地时区,建立网络。新建DB,建立变量,取消优化块的访问。 新建FC,先建立内部变量如下......