js获取数组中出现次数最多的元素、最大值、最小值

随机产生一个数组:范围(1~50)

var datas = new Array();
for(var i = 0;i < 1000;i++){
  num = Math.random()*50+5;
  num = Math.ceil(num);
  datas.push(num);
}//人为往数组里添加数,确保最多值,最小值,最大值
datas.push(1);
datas.push(60);
for(var i = 0;i < 50;i++){
  datas.push(25);
}
//获取出现次数最多的数
var dataBack = new Array();
var dataBack = new Array();
for(var i = 0;i<datas.length;i++){
	dataBack[i]=datas[i];
}
var num;
var count = 1;
for (var i = 0; i < 1000; i++) {
	num = Math.random() * 50;
	num = Math.ceil(num);
	dataBack.push(num);
}
var yuansu = new Array();
var sum = new Array();
for (var i = 0; i < dataBack.length; i++) {
	for (var j = i + 1; j < dataBack.length; j++) {
		if (dataBack[i] == dataBack[j]) {
			count++;//用来计算与当前这个元素相同的个数  
			dataBack.splice(j, 1); //没找到一个相同的元素,就要把它移除掉,  
			j--;
		}
	}
	yuansu[i] = dataBack[i];//将当前的元素存入到yuansu数组中  
	sum[i] = count; //并且将有多少个当前这样的元素的个数存入sum数组中  
	count = 1; //再将count重新赋值,进入下一个元素的判断  
}
var max = -99999;
var index;
for (var i = 0; i < sum.length; i++) {
	if (sum[i] > max) {
		index = i;
		max = sum[i];
	}
}

var NODATA_value = yuansu[index];//次数最多的元素

var max = datas[0];
var min = datas[0];
for (var i = 0; i < datas.length; i++) {
	if (datas[i] == NODATA_value)
		continue;
	var x = parseFloat(datas[i]);
	if (x > max)
		max = x;
	if (x < min)
		min = x;
}
var str = "frequent: "+NODATA_value +"\nmax:"+max+"\nmin:"+min;
//max min 为结果


你可能感兴趣的:(js获取数组中出现次数最多的元素、最大值、最小值)