为了账号安全,请及时绑定邮箱和手机立即绑定

JavaScript-用旧语法替换循环

JavaScript-用旧语法替换循环

临摹微笑 2021-04-02 14:11:29
我有成功运行的此代码。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) {//....和其余的代码
查看完整描述

3 回答

?
繁星coding

TA贡献1797条经验 获得超4个赞

如果要使用tradition for loop循环对象。

您首先需要获取所有密钥,Object.keys(charMap)然后再遍历这些密钥。


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())

PS:但是建议您使用for  ... in循环遍历对象,因为它更干净并且从一开始就受到支持。


查看完整回答
反对 回复 2021-04-22
?
慕勒3428872

TA贡献1848条经验 获得超6个赞

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


为了拥有符合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());


查看完整回答
反对 回复 2021-04-22
?
慕码人2483693

TA贡献1860条经验 获得超9个赞

该for .. in自EcmaScript的第一版循环语法一直存在。唯一需要适应的是:let和const更改它们var。


function maxChar() {  

  var charMap = {a:1, b:3, a:1};

  var max = 0;

  var maxChar = '';

  for (var index in charMap) {

    if (max < charMap[index]) {

      max = charMap[index];

      maxChar = index;

    } 

  }

  return maxChar

}


console.log(maxChar());


查看完整回答
反对 回复 2021-04-22
  • 3 回答
  • 0 关注
  • 193 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信