📅  最后修改于: 2023-12-03 15:33:13.873000             🧑  作者: Mango
在 JavaScript 中,我们可以使用数组和循环结构来实现求数组中出现次数最多的数字的功能。下面是具体的代码实现。
首先,我们需要一个示例数组来进行演示:
const arr = [1, 2, 3, 4, 5, 5, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8];
接下来,我们需要定义一个函数来实现统计数组中数字出现次数的功能:
function countNums(arr) {
const count = {};
for (let num of arr) {
count[num] = (count[num] || 0) + 1;
}
return count;
}
上述函数 countNums
中,我们使用了一个对象 count
来记录数组中每个数字出现的次数。当我们遍历数组中的每个数字时,如果 count
对象中已有这个数字,则将其出现次数加 1;如果没有,则将其出现次数初始化为 1。
下一步,我们需要遍历 count
对象,以找出出现次数最多的数字:
function findMostFreqNum(count) {
let mostFreqNum;
let mostFreqCount = 0;
for (let num in count) {
if (count[num] > mostFreqCount) {
mostFreqCount = count[num];
mostFreqNum = num;
}
}
return mostFreqNum;
}
在上述函数 findMostFreqNum
中,我们使用两个变量 mostFreqNum
和 mostFreqCount
来记录目前出现次数最多的数字和其出现次数。在遍历 count
对象时,我们将 mostFreqCount
和 mostFreqNum
赋值为当前数字的出现次数和数字本身,如果我们找到了一个出现次数比当前最多次数还多的数字,则更新记录中的数值。
最后,我们可以通过调用以上两个函数来得到数组中出现次数最多的数字:
const count = countNums(arr);
const mostFreqNum = findMostFreqNum(count);
console.log(mostFreqNum); // Output: "8"
const arr = [1, 2, 3, 4, 5, 5, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8];
function countNums(arr) {
const count = {};
for (let num of arr) {
count[num] = (count[num] || 0) + 1;
}
return count;
}
function findMostFreqNum(count) {
let mostFreqNum;
let mostFreqCount = 0;
for (let num in count) {
if (count[num] > mostFreqCount) {
mostFreqCount = count[num];
mostFreqNum = num;
}
}
return mostFreqNum;
}
const count = countNums(arr);
const mostFreqNum = findMostFreqNum(count);
console.log(mostFreqNum); // Output: "8"
以上就是使用 JavaScript 实现求数组中出现次数最多的数字的完整代码实现。