我有几个数组要处理。我需要从每个数组中提取最重复的值。
从 [3, 7, 7, 7]
中,我需要找到值 7
。每个数组大小为 4。现在,我不必考虑最重复的值何时不止一个,例如 [3, 7, 7, 7]
。所有的值都是一个数字。
我环顾了网络。我找到了几种使数组成为 uniq()
的方法。但是我还没有找到获取重复值的方法。我正在使用 jQuery,但原始 JavaScript 可以很好地完成这项任务。
最佳答案
在效率方面并不完美,但可以完成工作:
var nums = [3, 7, 7, 7];
var freqs = {};
var max_index;
var max_value = -1/0; // Negative infinity.
$.each(nums, function(i, v) {
if (freqs[v] != undefined) {
freqs[v]++;
} else {
freqs[v] = 1;
}
});
$.each(freqs, function(num, freq) {
if (freq > max_value) {
max_value = freq;
max_index = num;
}
});
if (max_index != undefined) {
alert("Most common element is " + max_index + " with " + max_value + " repetition(s).");
}
关于javascript - 从 JavaScript 中的数组中提取最重复的值(使用 jQuery),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2440295/