gpt4 book ai didi

javascript - 查找数组中出现频率最高的项目(不仅仅是字符串)

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

谁能告诉我这个 exercise ?编写一个 JavaScript 程序来查找数组中出现次数最多的项。

var arr1 = [3, 'a', 'a', 'a', 2, 3, 'a', 3, 'a', 2, 4, 9, 3];
var mf = 1;
var m = 0;
var item;

for (var i = 0; i < arr1.length; i++) {
for (var j = i; j < arr1.length; j++) {
if (arr1[i] == arr1[j]) m++;
if (mf < m) {
mf = m;
item = arr1[i];
}
}

m = 0;
}

alert(item + " ( " + mf + " times ) ");

我一直在 stackoverflow 上查看一些类似的问题,就是找不到我想要的答案。

我的问题是:

  1. 我不明白为什么需要两个 for 循环。

  2. 为什么需要 mfm。似乎有点困惑。

  3. 还有其他解决方法吗?

最佳答案

我真的不认为这个解决方案需要 2 个循环。您可以查看此原型(prototype)代码,它使用称为 map 的简单数据结构:

var arr=[3, 'a', 'a', 'a', 2, 3, 'a', 3, 'a', 2, 4, 9, 3];
var map = {};
var mostFrequentElement = arr[0];
function findMostFrequent(){
for(var i = 0; i<arr.length; i++){
if(!map[arr[i]]){
map[arr[i]]=1;
}else{
++map[arr[i]];
if(map[arr[i]]>map[mostFrequentElement]){
mostFrequentElement = arr[i];
}
}
}
alert(mostFrequentElement);
}

关于javascript - 查找数组中出现频率最高的项目(不仅仅是字符串),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31227687/

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