我试图返回最大重复词。但是由于某种原因它没有返回最大值。这是负责的代码:
var max = -Infinity;
for(var prop in myObj){
if(myObj[prop] > max){
max = prop;
}
}
return max;
这个返回 "h"w/c 是单词 'hello' 中的第一个元素...它应该是 'l'...
现在这是我的全部代码:
function findMaxRepeatCountInWord(word) {
var splitWord = word.split('');
var myObj = {};
for(var i = 0; i < splitWord.length; i++){
if(myObj.hasOwnProperty(splitWord[i])){
myObj[splitWord[i]]++;
}else{
myObj[splitWord[i]] = 1;
}
}
var max = -Infinity;
for(var prop in myObj){
if(myObj[prop] > max){
max = prop;
}
}
return max;
}
console.log(findMaxRepeatCountInWord('helllo'));
知道我错过了什么吗?
最佳答案
您首先比较一个值,然后将 max
更改为一个键。
我建议只对键使用 max,并使用键的第一个元素进行初始化。然后从第二个键迭代并检查该值是否大于实际最大值。
function findMaxRepeatCountInWord(word) {
var splitWord = word.split('');
var myObj = {};
for (var i = 0; i < splitWord.length; i++) {
if (myObj.hasOwnProperty(splitWord[i])) {
myObj[splitWord[i]]++;
} else {
myObj[splitWord[i]] = 1;
}
}
var keys = Object.keys(myObj), // take the keys in an array
max = keys[0]; // initialize with the first key
for (i = 1; i < keys.length; i++) { // iterate from the second key
if (myObj[keys[i]] > myObj[max]) { // check and
max = keys[i]; // update
}
}
return max;
}
console.log(findMaxRepeatCountInWord('helllo'));
关于javascript - 对象不返回最大数量 - JS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46027595/