gpt4 book ai didi

javascript - 如何使用 JavaScript 找到出现次数最多的数字?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:05:23 26 4
gpt4 key购买 nike

如果用户输入 5 个数字,假设... 4, 4, 7, 7, 4。 4 发生了 3(最多)次。所以输出应该是4

如何使用 JavaScript 执行此操作?非常感谢您的帮助。谢谢!

到目前为止我已经试过了。它有效,但它太长了,正在寻找一些简短的方法。

附言这不是我的作业!

    var n = parseInt(prompt("How many numbers do you like to enter?", ""));
var num = new Array();

for (i = 1; i <= n; i++) {
num[i] = parseInt(prompt("Enter a number", ""));
document.write("Entered numbers are: " + num[i] + "<br/>");
}

var total = new Array();
for (i = 1; i <= n; i++) {
var count = 1;
for (j = i + 1; j <= n; j++) {
if (num[i] == num[j]) {
count++;
}
total[i] = count;
}
}

var most = 0;
for (i = 0; i < n; i++) {
if (most < total[i]) {
most = total[i];
}
var val = i;
}
document.write("<br/>" + num[val] + " is occurred " + most + " times");

最佳答案

创建一个 array a 有很多数字,使用 array literals :

var a = [1, 2, 3, 4, 4, 5, 1, 2, 3, 1, 2, 1, 1];

创建一个普通对象 o,使用 object literals .

var o = {},          /* Creates a new object */
i = 0, /* Declare variable i, initialise value at 0*/
m = {m:0,t:null},
t, /* Declare variable t */
len = a.length; /* Declare variable len, set value to the array's length */

使用 for(;;)-loop 遍历数组 a并增加计数器。计数器存储在对象 o 的 HashMap 中。
第一次出现 key 时需要 (o[a[i]] || 0):当找不到时,使用值 0 而不是 未定义。另见 Short-circuit evaluation: Logical OR .

for ( ; i < len ; i++ ) {
o[ a[i] ] = ( o[ a[i] ] || 0 ) + 1;
}

然后你有一个对象 o 看起来像:

o = {
"1": 5,
"2": 3,
"3": 2,
"4": 2,
"5": 1
}

然后使用 for(.. in ..)-loop 遍历 o并找出呈现的最大次数。
在循环的底部,conditional ternary .. ? .. : ..使用运算符:

for ( i in o ) {
t = {
m: o[i],
i: i
};
m = m.m < t.m ? t : m;
}

在这个循环之后 m 等于:

m = { 
i: "1",
m: "5"
};

并且可以使用以下方法捕获最大值:

o[m];

女巫给你:

5

演示

http://jsbin.com/utiqey/

var a = [1, 2, 3, 4, 4, 5, 1, 2, 3, 1, 2, 1, 1]; 

var o = {},
i = 0,
m = {m:0,t:null},
t,
len = a.length;

for ( ; i < len ; i++ ) {
o[ a[i] ] = ( o[ a[i] ] || 0 ) + 1;
}


for ( i in o ) {
t = {
m: o[i],
i: i
};
m = m.m < t.m ? t : m;
}

alert(m.i + " is the highest presented " + m.m + " times");

关于javascript - 如何使用 JavaScript 找到出现次数最多的数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10061594/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com