Попытка получить номер для каждого символа в стр - PullRequest
0 голосов
/ 04 июня 2018

Я пишу код и задаю вопрос и не вижу, в чем дело.Меня просят распечатать каждое число для каждого соответствующего письма.

EG.a = 1 b = 2

Также для удаления любых специальных символов и пробелов.

Ниже приведен мой код, я очень признателен:)

 function alphabetPosition(str) {
   str.split('');
   var emptyArr = [];
   var letters = /^[A-Za-z]+$/;
   for(i=0; i <= str.length; i++){
    if(str[i].match(letters)){
     var num = str[i].charCodeAt(0) - 96
     emptyArr.push(num)
     var arrStr = emptyArr.toString();

     return arrStr


     }else{
      console.log('didnt match');
     }

   }
}

alphabetPosition('sunset')

, поэтому привет человек должен напечататьout "19 21 14 19 5 20"

Ответы [ 4 ]

0 голосов
/ 04 июня 2018

Вы можете использовать parseInt для символа с основанием 36 и использовать смещение -9 для получения значений.

function alphabetPosition(string) {
    return Array
        .from(
            string,
            c => parseInt(c, 36) - 9
        )
        .join(' ');
}

console.log(alphabetPosition('sunset'))
0 голосов
/ 04 июня 2018

Не возвращаться внутрь цикла for

function alphabetPosition(str) {
   str.split('');
   var res = [];
   var letters = /^[A-Za-z]+$/;

   for(i=0; i < str.length; i++){
    if(str[i].match(letters)){
     var num = str[i].charCodeAt(0) - 96
     res.push(num)

     }else{
      console.log('didnt match');
     }

   }
   return res.join(' ')
}
0 голосов
/ 04 июня 2018

Ваш код должен возвращать значение после цикла for.

 function alphabetPosition(str) {
   str = str.split('');
   var emptyArr = [];
   var letters = /^[A-Za-z]+$/;
   for(i=0; i < str.length; i++){
    if(str[i].match(letters)){
     var num = str[i].charCodeAt(0) - 96
     emptyArr.push(num)
     }else{
      console.log('didnt match');
     }
   }
   return emptyArr.toString()
}
console.log(alphabetPosition('sunset'))

Еще один способ сделать это:

alphabetPosition=t=>t.match(/[a-z]/gi).map(i=>parseInt(i,36)-9).join(" ")
console.log(alphabetPosition('sunset'))
0 голосов
/ 04 июня 2018

Ваше возвращение слишком рано.Переместите его (и вызов toString()) за пределы цикла, и ваш код должен работать.

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