用字母位置替换字母

Mil*_*los 7 javascript arrays string

当我开始时,这对我来说看起来相当简单,但出于某种原因,每当我尝试在代码服务上运行结果时,我都会得到一个空数组.我希望你能帮助我找出问题所在.

function alphabetPosition(text) {
  text.split(' ').join('');
  var chari = "";
  var arr = [];
  var alphabet = "abcdefghijklmnopqrstuvwxyz".split('');
  for(var i = 0; i < text.len; i++){
    chari = text.charAt(i).toLowerCase();
    if(alphabet.indexOf(chari) > -1){
      arr.push(alphabet.indexOf(chari));
    }
  }
  return arr;
}
console.log(alphabetPosition("Hello World"));
Run Code Online (Sandbox Code Playgroud)

我的想法是从参数中获取文本然后去掉空格.我为我的空数组创建了一个变量,然后创建一个字母字符串,我可以稍后搜索.在for循环中,我将每个字符设置为小写,如果在字母字符串中找到该字符,则其位置将被推入数组(arr).我很感激你的时间.

Nin*_*olz 7

你需要String#length财产

text.length
Run Code Online (Sandbox Code Playgroud)

而不是text.len.

ES6 的解决方案

function alphabetPosition(text) {
    var chari,
        arr = [],
        alphabet = "abcdefghijklmnopqrstuvwxyz",
        i;

    for (var i = 0; i < text.length; i++){
        chari = text[i].toLowerCase();
        if (alphabet.indexOf(chari) !== -1){
            arr.push(alphabet.indexOf(chari));
        }
    }
    return arr;
}
console.log(alphabetPosition("Hello World!!1"));
Run Code Online (Sandbox Code Playgroud)


kev*_*net 7

第一:删除空格
第二:将每个字符与其字母顺序映射
第三:用字符串测试新年快乐

var alphabet = "abcdefghijklmnopqrstuvwxyz".split('');
var alphabetPosition = text => 
  text.split('').map(x => alphabet.indexOf(x) + 1);
console.log(alphabetPosition("happy new year"));
Run Code Online (Sandbox Code Playgroud)


Pra*_*man 7

卡塔适用本规范.试试这个:

function alphabetPosition(text) {
  var result = "";
  for (var i = 0; i < text.length; i++) {
    var code = text.toUpperCase().charCodeAt(i)
    if (code > 64 && code < 91) result += (code - 64) + " ";
  }

  return result.slice(0, result.length - 1);
}
console.log(alphabetPosition("The sunset sets at twelve o' clock."));
Run Code Online (Sandbox Code Playgroud)