Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 显示js数组中最频繁项的最后一个元素_Javascript_Arrays - Fatal编程技术网

Javascript 显示js数组中最频繁项的最后一个元素

Javascript 显示js数组中最频繁项的最后一个元素,javascript,arrays,Javascript,Arrays,我有一个函数,它定义数组中最频繁的项并返回它。它和预期一样工作,除了我想显示最后一个项目,如果有两个或更多的项目具有相同的频率分数。对于expample,我有一个数组['grape',lemon','apple','grape','lemon'],函数将返回'grape',在这种情况下,我的目标是返回'lemon'。我试图使用if语句,但没有找到正确的方法。以下是js代码: let fruits = ['grape', 'lemon', 'apple', 'grape', 'lemon'];

我有一个函数,它定义数组中最频繁的项并返回它。它和预期一样工作,除了我想显示最后一个项目,如果有两个或更多的项目具有相同的频率分数。对于expample,我有一个数组
['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);
让水果=[‘葡萄’、‘柠檬’、‘苹果’、‘葡萄’、‘柠檬’];
(函数(数组){
设mf=1;
设m=0;
让项目;
for(设i=0;i

如果有任何帮助,我们将不胜感激。

只需反转您的循环,从数组的末尾开始,您可以设置
m=1
j=i-1
,这样
i
就永远不会等于
j
,以避免不必要的比较和添加:

让水果=[‘葡萄’、‘柠檬’、‘苹果’、‘葡萄’、‘柠檬’];
(函数(数组){
设mf=1;
设m=1;
让项目;
对于(设i=array.length-1;i>0;i--){
对于(设j=i-1;j>=0;j--){
if(数组[i]==数组[j])
m++;
if(mf})(水果)
只要反转循环,从数组末尾开始,就可以设置
m=1
j=i-1
,这样
i
就永远不会等于
j
,以避免不必要的比较和添加:

让水果=[‘葡萄’、‘柠檬’、‘苹果’、‘葡萄’、‘柠檬’];
(函数(数组){
设mf=1;
设m=1;
让项目;
对于(设i=array.length-1;i>0;i--){
对于(设j=i-1;j>=0;j--){
if(数组[i]==数组[j])
m++;
if(mf})(水果)只需使用
只需使用
一种可能的解决方案是将数组从高索引循环到低索引

让水果=[‘葡萄’、‘柠檬’、‘苹果’、‘葡萄’、‘柠檬’];
(函数(数组){
设mf=1;
设m=0;
让项目;
for(设i=array.length-1;i>=0;i--){
对于(设j=i;j>=0;j--){
if(数组[i]==数组[j])
m++;
if(mf})(水果)一种可能的解决方案是将数组从高索引循环到低索引

让水果=[‘葡萄’、‘柠檬’、‘苹果’、‘葡萄’、‘柠檬’];
(函数(数组){
设mf=1;
设m=0;
让项目;
for(设i=array.length-1;i>=0;i--){
对于(设j=i;j>=0;j--){
if(数组[i]==数组[j])
m++;
if(mf})(水果)您可以使用单个循环,其中包含一个用于计数项目的对象和一个用于计数最大的最后一个项目的数组

函数lastTop(数组){
变量计数={},
最后=[],
价值
对于(数组的值)最后一次[计数[值]=(计数[值]| | 0)+1]=值;
返回last.pop();
}
var数组=[“葡萄”、“柠檬”、“苹果”、“葡萄”、“柠檬”],
last=lastTop(数组);

console.log(最后一个)您可以使用单个循环,其中包含一个用于计数项目的对象和一个用于计数最大的最后一个项目的数组

函数lastTop(数组){
变量计数={},
最后=[],
价值
对于(数组的值)最后一次[计数[值]=(计数[值]| | 0)+1]=值;
返回last.pop();
}
var数组=[“葡萄”、“柠檬”、“苹果”、“葡萄”、“柠檬”],
last=lastTop(数组);
console.log(最后一个)你说的“最后一次”是什么意思?最后,如中所示,原始数组中最大的索引?您所说的“最后”是什么意思?最后,如中所示,原始数组中的最大索引?