我有一个函数可以定义数组中出现频率最高的项目并返回它。它按预期工作,但如果有两个或多个具有相同频率得分的项目,我想显示最后一个项目。例如,我有一个数组 ['grape', 'lemon', 'apple', 'grape', 'lemon']
,函数将返回 'grape'
和在这种情况下,我的目标是返回 'lemon'
。我尝试使用 if 语句,但没有找到正确的方法。这是js代码:
let fruits = ['grape', 'lemon', 'apple', 'grape', 'lemon'];
(function(array) {
let mf = 1;
let m = 0;
let item;
for (let i = 0; i < array.length; i++) {
for (let j = i; j < array.length; j++) {
if (array[i] == array[j])
m++;
if (mf < m) {
mf = m;
item = array[i];
}
}
m = 0;
}
console.log(item);
return item;
})(fruits);
如有任何帮助,我们将不胜感激。
最佳答案
只需使用 <=
而不是 <
let fruits = ['grape', 'lemon', 'apple', 'grape', 'lemon'];
(function(array) {
let mf = 1;
let m = 0;
let item;
for (let i = 0; i < array.length; i++) {
for (let j = i; j < array.length; j++) {
if (array[i] == array[j])
m++;
if (mf <= m) {
mf = m;
item = array[i];
}
}
m = 0;
}
console.log(item);
return item;
})(fruits);
关于javascript - 显示js数组中最频繁项的最后一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57835444/