我已经编写了这段代码以将得分最高的单词作为字符串开头返回,但是当我计算了所有单词并想显示所有结果时,我发现所有结果都是:NaN
function high(x) {
var words = x.split(' ');
var y;
var num = [];
for (var i = 0; i < words.length; i++) {
y = words[i].split('');
for (var d = 0; d < words[i].length; d++) {
if (y[d] == 'a') num[i] += 1;
else if (y[d] == 'b') num[i] += 2;
else if (y[d] == 'c') num[i] += 3;
else if (y[d] == 'd') num[i] += 4;
else if (y[d] == 'e') num[i] += 5;
else if (y[d] == 'f') num[i] += 6;
else if (y[d] == 'g') num[i] += 7;
else if (y[d] == 'h') num[i] += 8;
else if (y[d] == 'i') num[i] += 9;
else if (y[d] == 'j') num[i] += 10;
else if (y[d] == 'k') num[i] += 11;
else if (y[d] == 'l') num[i] += 12;
else if (y[d] == 'm') num[i] += 13;
else if (y[d] == 'n') num[i] += 14;
else if (y[d] == 'o') num[i] += 15;
else if (y[d] == 'p') num[i] += 16;
else if (y[d] == 'q') num[i] += 17;
else if (y[d] == 'r') num[i] += 18;
else if (y[d] == 's') num[i] += 19;
else if (y[d] == 't') num[i] += 20;
else if (y[d] == 'u') num[i] += 21;
else if (y[d] == 'v') num[i] += 22;
else if (y[d] == 'w') num[i] += 23;
else if (y[d] == 'x') num[i] += 24;
else if (y[d] == 'y') num[i] += 25;
else num[i] += 26;
}
}
console.log(...num);
}
high("what time are we climbing up the volcano");
最佳答案
你必须先初始化 num[i]
才能执行 +=
function high(x) {
var words = x.split(' ');
var y;
var num = [];
for (var i = 0; i < words.length; i++) {
y = words[i].split('');
for (var d = 0; d < words[i].length; d++) {
if (!num[i]) num[i] = 0; // <--- Add this
if (y[d] == 'a') num[i] += 1;
else if (y[d] == 'b') num[i] += 2;
else if (y[d] == 'c') num[i] += 3;
else if (y[d] == 'd') num[i] += 4;
else if (y[d] == 'e') num[i] += 5;
else if (y[d] == 'f') num[i] += 6;
else if (y[d] == 'g') num[i] += 7;
else if (y[d] == 'h') num[i] += 8;
else if (y[d] == 'i') num[i] += 9;
else if (y[d] == 'j') num[i] += 10;
else if (y[d] == 'k') num[i] += 11;
else if (y[d] == 'l') num[i] += 12;
else if (y[d] == 'm') num[i] += 13;
else if (y[d] == 'n') num[i] += 14;
else if (y[d] == 'o') num[i] += 15;
else if (y[d] == 'p') num[i] += 16;
else if (y[d] == 'q') num[i] += 17;
else if (y[d] == 'r') num[i] += 18;
else if (y[d] == 's') num[i] += 19;
else if (y[d] == 't') num[i] += 20;
else if (y[d] == 'u') num[i] += 21;
else if (y[d] == 'v') num[i] += 22;
else if (y[d] == 'w') num[i] += 23;
else if (y[d] == 'x') num[i] += 24;
else if (y[d] == 'y') num[i] += 25;
else num[i] += 26;
}
}
console.log(...num);
}
high("what time are we climbing up the volcano");
关于javascript - 最高得分词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52376891/