javascript - 最高得分词

标签 javascript arrays

我已经编写了这段代码以将得分最高的单词作为字符串开头返回,但是当我计算了所有单词并想显示所有结果时,我发现所有结果都是: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/

相关文章:

javascript - 使用 Drupal_add_js/Jquery 评估 Node 时未定义

c - 在 C 中返回 int 数组

C++:平均数和众数

javascript - 可以向 YouTube iframe 添加 onclick 事件吗?

javascript - 使用 JavaScript 查找数组中重复值的最高数量

php - 引用 - 这个错误在 PHP 中意味着什么?

c - 如何扫描多个值并添加到数组?

c - C 中 char 数组成员的默认值是多少?

javascript - 如何结束移动设备上当前的预测文本单词?

javascript - 没有范围变化时angularjs无限$ digest循环