Подсчет количества слов из массива - PullRequest
0 голосов
/ 18 апреля 2020

Задача состоит в том, чтобы, учитывая строку слов, разделенных пробелами, вычислить оценку каждого слова (a = 1, b = 2, c = 3 et c.) И вернуть слово с высокий балл Если слова имеют одинаковую оценку, должно быть возвращено слово, появляющееся первым в данной строке. CodeWars контролирует меня, и снова у меня есть только один тест, не подтверждающий мой код, а остальные в порядке: /

function high(x){
  const arr = x.split(' ');
  let score = 0;
  let highestWord = undefined;
  var currentScore = 0;
  arr.map((word) => {
    currentScore = word.split('').reduce((sum, letter) => {
      return sum + letter.charCodeAt(0) - 64;
    }, 0);
    if (currentScore > score) {
      score = currentScore;
      highestWord = word;
    }
  });
  return highestWord;
}

1 Ответ

0 голосов
/ 18 апреля 2020

64 является основой кода ASCII для A, а не a. Предполагая, что оценка считается нечувствительной к регистру, вам нужно сопоставить все с одним и тем же регистром, прежде чем вычислять оценку.

Поэтому используйте

const arr = x.toUpperCase().split(" ");

, чтобы все было в верхнем регистре.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...