JavaScript-用旧语法替换循环

时间:2019-04-08 10:54:34

标签: javascript

我有成功运行的这段代码。

function maxChar() {  
      const charMap = {a:1, b:3, a:1}
      let max = 0
      let maxChar = ''

      for(let index in charMap) {
        if(max < charMap[index]){
          max = charMap[index]
          maxChar = index
        } 
      }

      return maxChar
    }

    console.log(maxChar())

它正在控制台b上返回,这是重复次数最多的字母。

但是我想用旧语法做同样的事情。

我将如何替换呢?

for(let index in charMap) {//....

和其余代码

2 个答案:

答案 0 :(得分:1)

您可以在没有其他变量的情况下获得最大值。

要获得符合ES5的代码,请将所有变量声明更改为var语句。

function maxChar() {
    var charMap = { a: 1, b: 3, a: 1 },
        maxKey,
        key;

    for (key in charMap) {
        if (!maxKey || charMap[maxKey] < charMap[key]) {
            maxKey = key;
        }
    }
    return key;
}

console.log(maxChar());

答案 1 :(得分:1)

如果要使用docker save来遍历对象。
首先需要使用tradition for loop获取所有密钥,然后循环遍历这些密钥。

Object.keys(charMap)

  

PS:但是建议您使用function maxChar() { const charMap = {a:1, b:3, a:1} let max = 0 let maxChar = '' const charMapKeys = Object.keys(charMap) for(let i = 0; i < charMapKeys.length; i++) { if(max < charMap[charMapKeys[i]]){ max = charMap[charMapKeys[i]] maxChar = charMapKeys[i] } } return maxChar } console.log(maxChar())循环来遍历对象,因为它更干净并且从一开始就受到支持。