Javascript 无法通过for-in循环计算出最高值

Javascript 无法通过for-in循环计算出最高值,javascript,Javascript,我很难找到一种方法来循环objectMap中的对象,以获得它收集的果实的最高值。我的问题是,如何使用for in循环使循环获得最高值。我在下面附上了我的代码。在我停止的地方,通过for in循环 var-fructString='香蕉、香蕉、梨、橙、苹果、瓜、葡萄、苹果、香蕉、苹果、苹果、葡萄、香蕉、橙、瓜、橙、香蕉、橙、梨、葡萄、橙、橙、苹果、苹果、香蕉' var fruitList=fruitString.split(',')) var-futuremap={}; 函数soldfruits

我很难找到一种方法来循环objectMap中的对象,以获得它收集的果实的最高值。我的问题是,如何使用
for in
循环使循环获得最高值。我在下面附上了我的代码。在我停止的地方,通过
for in
循环

var-fructString='香蕉、香蕉、梨、橙、苹果、瓜、葡萄、苹果、香蕉、苹果、苹果、葡萄、香蕉、橙、瓜、橙、香蕉、橙、梨、葡萄、橙、橙、苹果、苹果、香蕉'
var fruitList=fruitString.split(','))
var-futuremap={};
函数soldfruits(){
对于(var i=0;i
如果
水果列表
的属性值为
水果
,则可以循环并检查。如果不取零,则取属性值并加一。然后分配给属性

var-fructString='香蕉、香蕉、梨、橙、苹果、瓜、葡萄、苹果、香蕉、苹果、苹果、葡萄、香蕉、橙、瓜、橙、香蕉、橙、梨、葡萄、橙、橙、苹果、苹果、香蕉',
水果列表=水果串.split(','),
果图={},
最高=0;
水果列表。forEach(函数(水果){
水果地图[水果]=(水果地图[水果]| | 0)+1;
如果(水果图[水果]>最高){
最高=水果地图[水果];
}
});
控制台日志(果图);
console.log(最高)
。作为控制台包装{max height:100%!重要;top:0;}
尝试以下操作:

var fruitString = 'Banana,Banana,Pear,Orange,Apple,Melon,Grape,Apple,Banana,Grape,Melon,Grape,Melon,Apple,Grape,Banana,Orange,Melon,Orange,Banana,Banana,Orange,Pear,Grape,Orange,Orange,Apple,Apple,Banana'

var fruitList = fruitString.split(',')
var fruitMap = {};

function soldfruits(){
for (var i = 0; i < fruitList.length; i++) {
    var currentFruit = fruitList[i]
if (fruitMap[currentFruit] === undefined) {
     fruitMap[currentFruit]= 0;
    }
    fruitMap[currentFruit] = fruitMap[currentFruit] +1
}
console.log(fruitMap);
return fruitMap
}


var fmap = soldfruits(fruitMap);

var high = 0
var high_name = ''
for(var x in fmap)
{
    if(fmap[x] > high)
    {
         high = fmap[x]
         high_name = x
    }
}
console.log(high + ' ' + high_name)
var-fructString='香蕉、香蕉、梨、橙、苹果、瓜、葡萄、苹果、香蕉、苹果、苹果、葡萄、香蕉、橙、瓜、橙、香蕉、橙、梨、葡萄、橙、橙、苹果、苹果、香蕉'
var fruitList=fruitString.split(','))
var-futuremap={};
函数soldfruits(){
对于(var i=0;i高)
{
高=fmap[x]
高_name=x
}
}
console.log(高+''+高\u名称)
像这样:

var highest = {fruit:"", num:0}
for (var fruit in fruitMap) {
  var num = fruitMap[fruit];
  if (num > highest.num) { // if the current number of fruits is greater than the saved
    highest.fruit=fruit; // save the fruit
    highest.num=num;     // save the number
  }
}
console.log(highest);
或者,使用对象排序对数组进行排序,并弹出最后一个

var-fructString='香蕉、香蕉、梨、橙、苹果、瓜、葡萄、苹果、香蕉、苹果、苹果、葡萄、香蕉、橙、瓜、橙、香蕉、橙、梨、葡萄、橙、橙、苹果、苹果、香蕉'
var fruitList=fruitString.split(','))
var-futuremap={};
函数soldfruits(){
对于(var i=0;ihighest.num){
最高。水果=水果;
最高。num=num;
}
}

console.log(最高)此代码将返回售出水果的最高数量以及这些水果的名称

var mostSold = 0;
var mostFruits = [];
for (var fruits in fruitMap) {
  if (fruitMap[fruits] > mostSold) {
    // store the number of fruit sold
    mostSold = fruitMap[fruits];
    // initialise the list with the fruit name
    mostFruits = [fruits];
  }
  else if (fruitMap[fruits] == mostSold) {
    // add the fruit name to the list
    mostFruits.push(fruits);
  }
}
console.log( mostSold + ' : ' + mostFruits );

哪个是最高的?他想要的是数字而不是水果;)这并没有告诉你哪一个是最高的他只要求最高的数字,而不是名字。如果他需要的话,可以很容易地修改它来显示名称。@raphael75您可以通过for in循环向我澄清底部发生了什么。@mplungjan,我刚刚编辑它来显示最高项目的名称。:)我看到了。您不太喜欢分号;)(是的,我知道它们不是强制性的)也许是一个片段?你能重新检查我的答案作为答案吗?我编辑了这篇文章,让它也显示项目的名称,结果它丢失了答案检查。非常感谢。