私は独学でプログラミングを学ぼうとしており、javascript から始めました。もっと学ぶために、私は練習課題を完了してきました.1つの課題は、文字の繰り返しが最も多い文字列内の単語の最初のケースを決定するスクリプトを書くことでした. 私が作成したこのコードでそれを完了することができました:
string = "Hey i believe";
string = string.split(" ");
stringarray = [];
longestlength = 0;
for (i = 0; i < string.length; i++) {
stringarray.push(0);
}
for (i = 0; i < string.length; i++) {
if (string[i].length > longestlength) {
longestlength = string[i].length;
longestword = string[i];
}
}
for (x = 0; x < string.length; x++) {
y = 0;
z = 0;
while (z < string[x].length) {
if (string[x].substr(z,1) == string[x].substr(y,1) && z !== y) {
stringarray[x] += 1;
y = string[x].length -1;
}
y++;
if (y == string[x].length) {
z++;
y = z;
}
}
}
if (Math.max.apply(null,stringarray) === 0) {
mostrptltword = -1;
}
else {
mostrptltword = string[stringarray.indexOf(Math.max.apply(null,stringarray))];
}
console.log(mostrptltword);
しかし、チャレンジで可能なすべてのポイントを獲得するには、10 分以内に完了する必要があり、これには 25 分かかりました。だから私の質問は、私が物事を複雑にしすぎているということです。必要以上に長いスクリプトを書くことになりますか? 正規表現のようなものと、それらがスクリプトの長さを実際に短縮する方法とそれらを記述するのにかかる時間について少し読んだことがありますか、それとも、作成しなければならなかったすべてのループよりも便利な別の手法でしょうか?