gpt4 book ai didi

javascript - 获取数组中出现次数相同(最高)的所有元素

转载 作者:行者123 更新时间:2023-12-02 15:15:29 29 4
gpt4 key购买 nike

我有一个像 [1,4,3,1,6,5,1,4,4] 的数组

这里最高元素频率是 3 ,我需要从数组中选择频率为 3 的所有元素,如上例中的 [1,4]

我已经尝试过这个

var count = {},array=[1,4,3,1,6,5,1,4,4],
value;
for (var i = 0; i < array.length; i++) {
value = array[i];
if (value in count) {
count[value]++;
} else {
count[value] = 1;
}
}
console.log(count);

这将输出数组元素及其频率,现在我需要具有最高频率的所有元素。

最佳答案

我会按如下方式解决这个问题。

首先,写下您认为如何解决问题用英语,或接近英语的语言(当然是您的母语!)。写下每个步骤。从高级版本开始,例如:

  1. 计算输入中每​​个元素的频率。

  2. 找到最高频率。

等等。此时,重要的是不要陷入实现细节的困境。您的解决方案应该适用于几乎所有编程语言。

接下来通过添加子步骤来充实每个步骤。例如,您可以这样写:

  1. 找到最高频率。

    a.假设最高频率为零。

    b.检查每个频率。如果高于当前最高频率,则设为当前最高频率。

通过在头脑中手动执行算法来测试您的算法。

接下来,将您所写的内容转换为有时称为 pseudo-code的内容。 。正是在这一点上,我们的算法开始看起来有点像计算机程序,但仍然易于人类阅读。我们现在可以使用变量来表示事物。例如,我们可以写“max_freq ← cur_freq”。我们可以引用数组,并编写循环。

最后,将伪代码转换为 JS。如果一切顺利,第一次就应该可以工作!

近年来,很多人直接进入 JavaScript,但没有接触过如何思考算法,甚至是简单的算法。他们想象他们需要能够,或者神奇地达到这样的地步:凭空变出 JS,就像有人说方言一样。事实上,最好的程序员在遇到问题时不会立即开始编写array.reduce;而是会立即开始编写array.reduce。他们总是经历思考解决问题的方法的过程(即使只是在头脑中),这是一种非常值得学习的方法。

如果您没有掌握这项技能,那么每次您无法集中精力解决问题时,您都会在余下的职业生涯中向 SO 发帖。

关于javascript - 获取数组中出现次数相同(最高)的所有元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34509982/

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