js 算出Array陣列中出現次數最多的元素
阿新 • • 發佈:2019-01-09
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript">
var array = new Array(4, 5, 4,7, 8, 4,2,67,5,89,5,67);
var count = 1;
var yuansu= new Array();//存放陣列array的不重複的元素比如{4,5,7,8,2,67,89,}
var sum = new Array(); //存放陣列array中每個不同元素的出現的次數
for (var i = 0; i < array.length; i++) {
for(var j=i+1;j<array.length;j++)
{
if (array[i] == array[j]) {
count++;//用來計算與當前這個元素相同的個數
array.splice(j, 1); //沒找到一個相同的元素,就要把它移除掉,
j--;
}
}
yuansu[i] = array[i];//將當前的元素存入到yuansu陣列中
sum[i] = count; //並且將有多少個當前這樣的元素的個數存入sum陣列中
count =1; //再將count重新賦值,進入下一個元素的判斷
}
var str = '';
//算出array陣列中不同的元素出現的次數
for (var i = 0; i < yuansu.length; i++) {
str+=yuansu[i]+"出現的次數為:"+sum[i]+"<br/>";
}
document.write(str);
//算出array陣列中出現次數最多的兩個元素
var newsum = new Array(); // sum;
for (var item in sum) {
newsum[item] = sum[item];
}
newsum.sort();
//document.write(sum.toString()+"<br/>");
//document.write(newsum.toString() + "<br/>");
var first = ''; //存放出現次數最多的元素,以及個數
var second = ''; //存放出現次數居第二位的元素,以及個數
var fcount = 1; //計算出現次數最多的元素總共有多少個
//算出出現次數最多的元素及個數
document.write("<br/>");
for (var i = 0; i < sum.length; i++) {
if (sum[i] == newsum[newsum.length - 1]) {
//document.write("出現次數最多的元素是:" + yuansu[i] + "次數為:" + sum[i] + "<br/>");
first += "出現次數最多的元素是:" + yuansu[i] + "次數為:" + sum[i] + "<br/>";
fcount++;
}
}
//算出出現次數居第二位的元素及個數
for (var i = 0; i < sum.length; i++) {
if (sum[i] == newsum[newsum.length - fcount]) {
//document.write("出現次數居第二位的元素是:" + yuansu[i] + "次數為:" + sum[i] + "<br/>");
second += "出現次數居第二位的元素是:" + yuansu[i] + "次數為:" + sum[i] + "<br/>"
}
}
document.write("出現次數最多的元素有"+(fcount-1)+"個<br/>"+first+"<br/>"+second);
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
</div>
</form>
</body>
</html>