Javascript 我怎么能缩短这个?

Javascript 我怎么能缩短这个?,javascript,for-loop,while-loop,Javascript,For Loop,While Loop,我试图自学编程,从javascript开始。为了了解更多信息,我一直在完成练习的挑战,其中一个挑战是编写一个脚本,确定单词在一个重复字母最多的字符串中的第一个大小写。我可以用我编写的代码来完成它: string=“嘿,我相信”; string=string.split(“”); stringarray=[]; 最长长度=0; 对于(i=0;i

我试图自学编程,从javascript开始。为了了解更多信息,我一直在完成练习的挑战,其中一个挑战是编写一个脚本,确定单词在一个重复字母最多的字符串中的第一个大小写。我可以用我编写的代码来完成它:

string=“嘿,我相信”;
string=string.split(“”);
stringarray=[];
最长长度=0;
对于(i=0;i最长长度){
longestlength=字符串[i]。长度;
longestword=string[i];
}
}
对于(x=0;x
但是要获得挑战赛的所有可能分数,必须在10分钟内完成,这花了我25分钟。所以我的问题是我是否把事情复杂化了;导致我写的脚本比需要的长得多?我读过一些关于正则表达式之类的东西,以及它们如何真正缩短脚本长度和编写它们所需的时间,这些或其他技术可能比我所做的所有循环更有用?

var words=“heyyyy我相信”。split(“”);//将单词分成一个数组
var words = "Heyyyyy I believe".split(' '); // split the words into an array


var values = [],   // total of times that a letter appears
    k = 0,         // 'global' counter. I'm using this to iterate over the values array
    heigher = 0,   // holds de heigher occurrence of a letter 
    letter = "";   // the letter that most appears in that word
    word = "";     // the word


// iterate over all the words
for(var i = 0; i < words.length; i++) {  

    // iterate over each letter in each word
    for(var j = 0; j < words[i].length; j++) {

        // holds the occurrence time
        // RegEx: get the word in the position 'i' and check how many times the letter appears on the position [j] appears
        values[k] = words[i].match(new RegExp(words[i][j],'g')).length;

        // check if the next letter appears more times than the previous one
        if(values[k] > heigher) {
            // hold the values of interest
            heigher = values[k];
            letter = words[i][j];
            word = words[i];
        }
        k++;
    } 
}

console.log("word: " + word + " letter: " + letter + " total: " + heigher);
var values=[],//字母出现的总次数 k=0,/“全局”计数器。我用它来迭代数组中的值 heigher=0,//保存字母的de heigher匹配项 字母=”;/这个词中出现最多的字母 word=”“;/字眼 //重复所有单词 对于(var i=0;iheigher){ //持有感兴趣的价值观 heigher=值[k]; 字母=字[i][j]; 单词=单词[i]; } k++; } } 控制台日志(“单词:+word+”字母:+letter+”总计:+heigher);
jsfiddle:


评论了这个问题。希望它能有所帮助:)

如果代码按原样运行良好,而您只是在寻找更简洁的编写方法,那么考虑到您从未实际使用过
longestlength
longestword
的最终值,您可以去掉该循环和那些变量。这是什么意思“最重复的字母”无论如何,从周日开始,我可以用10种方式来解释它。哦,哇,这确实帮了我很大的忙!它让我更好地理解了RegExp是多么有用。