JavaScript数组中出现的次数最多的元素

var arr = [1,-1,2,4,5,5,6,7,5,8,6];
var maxVal = arr[0]; // 数组中的最大值
var minVal = arr[0]; // 数组中的最小值
var mostVal; // 数组中出现次数最多的元素
var tempObj = {};
var num = 0;
for(var i=arr.length-1; i>=0; i--){
    if(maxVal<arr[i]){ // 得到最大值
        maxVal = arr[i]
    }
    if(minVal>arr[i]){ // 得到最小值
        minVal = arr[i]
    }
    if(tempObj[arr[i]]){ // 得到元素出现的次数,并组成obj
        tempObj[arr[i]] = tempObj[arr[i]]+1;
    }else{
        tempObj[arr[i]] = 1;
    }
}
for(var key in tempObj){ // 从对象中得到数组中出现最多的元素
    if(!mostVal){
        mostVal = key;
    }else if(tempObj[mostVal]<tempObj[key]){
        mostVal = key;
    }
}
console.log("最大值为"+maxVal+"; 最小值为"+minVal+"; 次数最多的为"+mostVal);

  

原文地址:https://www.cnblogs.com/qianjinyan/p/8952874.html

时间: 2024-10-16 06:31:43

JavaScript数组中出现的次数最多的元素的相关文章

【学】从一个数组中找出重复最多的元素,并统计重复个数

通过json,将数组中的值都传给json中的键,利用json中的键是不能重复的性能,同时如果遇到重复的键,那就让这个键的值自增1,这样就能统计出重复次数 上面的方法可以得出一个json,但是还不够,因为无法比较json里的键或者值的大小,就要再将Json里的每组数据组成一个个小的json装到一个数组中,将统计的数量赋给每个json中的值,利用数组的sort的比较函数进行排序即可 function myMaxElement(arr){ var json = {}; for (var i=0; i<

求数组中反复次数最多的元素

1.问题描写叙述 比如:数组a={2,3,1,5,5,5,5,7,8,1}.元素2.3.7.8各出现1次.1出现两次.5出现4次,则反复次数最多的元素为5. 2. 方法与思路 2.1 以空间换时间,索引法 定义一个数组int cnt[MAX],将其元素所有初始化为0.然后遍历数组a.运行cnt[a[i]]++操作.最后在cnt数组中找最大的数.相应的数即为反复次数最多的数. 代码示比例如以下: //以空间换时间,索引法 int MaxFreq_index(int a[],int n) { int

求数组中重复次数最多的元素

1.问题描述 例如:数组a={2,3,1,5,5,5,5,7,8,1},元素2.3.7.8各出现1次,1出现两次,5出现4次,则重复次数最多的元素为5. 2. 方法与思路 2.1 以空间换时间,索引法 定义一个数组int cnt[MAX],将其元素全部初始化为0.然后遍历数组a,执行cnt[a[i]]++操作.最后在cnt数组中找最大的数,对应的数即为重复次数最多的数. 代码示例如下: //以空间换时间,索引法 int MaxFreq_index(int a[],int n) { int i,j

C语言--查询数组中出现次数最多的元素

查询数组中出现次数最多的元素 #include <stdio.h> #include <malloc.h> #include <stdlib.h> int max_count_num(int * arr, int len); int main() { int arr[5] = {1, 1, 1, 3, 1 }; max_count_num(arr, 5); return 0; } int max_count_num(int * arr, int len) { int i

js实现从字符串中查找出现次数最多的字符的两种解决办法

方法一:正则表达式匹配 1 var str = "adadfdfseffserfefsefseeffffftsdg"; 2 var maxLength = 0; var result = ""; 3 while (str != '') { 4 oldStr = str; 5 getStr = str.charAt(0); 6 str = str.replace(new RegExp(getStr, "g"), ""); 7 i

0131 JavaScript数组中新增元素:修改数组索引、修改 length 长度、数组翻转

? 数组中可以通过以下方式在数组的末尾插入新元素: 数组[ 数组.length ] = 新数据; 1.5.1 通过修改 length 长度新增数组元素 可以通过修改 length 长度来实现数组扩容的目的 length 属性是可读写的 var arr = ['red', 'green', 'blue', 'pink']; arr.length = 7; console.log(arr); console.log(arr[4]); // undefined console.log(arr[5]);

数字在排序数组中出现的次数

题目:统计一个数字在排序数组中出现的次数.例如输入排序数组{1,2,3,3,3,3,4,5}和数字3,由于3在这个数组中出现了4次,因此输出4. 程序实现: import java.util.Scanner; public class Test38 { public static void main(String[] args) { /**  * 初始化数组,测试数据可以多种途径初始化  */   Scanner in = new Scanner(System.in); /*int[] a = 

【剑指offer】Q38:数字在数组中出现的次数

与折半查找是同一个模式,不同的是,在这里不在查找某个确定的值,而是查找确定值所在的上下边界. def getBounder(data, k, start, end, low_bound = False): if end < start : return -1 while start <= end: mid = ( start + end ) >> 1 if data[ mid ] > k: end = mid - 1 elif data[ mid ] < k: star

九度oj 题目1349:数字在排序数组中出现的次数

题目描述: 统计一个数字在排序数组中出现的次数. 输入: 每个测试案例包括两行: 第一行有1个整数n,表示数组的大小.1<=n <= 10^6. 第二行有n个整数,表示数组元素,每个元素均为int. 第三行有1个整数m,表示接下来有m次查询.1<=m<=10^3. 下面有m行,每行有一个整数k,表示要查询的数. 输出: 对应每个测试案例,有m行输出,每行1整数,表示数组中该数字出现的次数. 样例输入: 8 1 2 3 3 3 3 4 5 1 3 样例输出: 4 使用库函数即可解决