gpt4 book ai didi

javascript - 了解 JavaScript 模式函数

转载 作者:行者123 更新时间:2023-11-29 17:47:00 25 4
gpt4 key购买 nike

通过贡献,我设法找到编写函数的代码来查找给定数字集的众数。我试图准确理解函数的作用,但我被困在函数的 1 部分。

我尝试了控制台记录所有内容,但我无法理解 1 部分。

在我们将数组中的数字按出现次数排序后,我们使用另一个循环来获取出现次数最多的数字的键值。在此之前,我们声明变量比较并将其设置为 0 和一个空模式变量。

我无法理解的部分是理解为什么我们需要将 freq[item] 与比较变量进行比较,如果该陈述为真,我们需要将比较设置为 频率[项目]

有人可以解释一下到底发生了什么吗?

干杯。

function getMostFrequent(arr) {
var freq = {}

for (item of arr) {
freq[item] ? freq[item]++ : freq[item] = 1
}

var compare = 0
var mode

for (item in freq) {
if (freq[item] > compare) {
compare = freq[item]
mode = item
}
}
console.log(parseInt(mode))
}

getMostFrequent([1,1,3,3,2,2,5,5,5,3,3,3,3]);

最佳答案

这是您指的部分:

var compare = 0;
var mode;

for (item in freq) {
if (freq[item] > compare) {
compare = freq[item];
mode = item;
}
}

这会计算所有 freq[item] 中的最大值。将变量 compare 重命名为 maximum 可能更好,因为这就是它最后的样子。

if 条件仅对大于该最大值的频率 (freq[item]) 为真,因此正在设置 compare到那个更大的频率值。换句话说,compare 是目前为止看到的所有 freq[item] 中最大的 freq[item]

最后的语句将是 mode = item;,它只针对最后的最大频率(即最大总体频率)调用,它将 mode 设置为最常见的 item

关于javascript - 了解 JavaScript 模式函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48371840/

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