处理多于一个字符的输入

Vot*_*ech 1 javascript

我想给字母表中的字母加上数字。问题是我不知道如何处理相同值的多个字母;例如字母 "A":1 "E":5 和 "D":4 应该返回 154 但在我的代码中返回只给出最后一个字母的数字。

var alpha =[
  {   
    "A":1,  
    "B":2,  
    "C":3,   
    "D":4,   
    "E":5,  
    "F":6,  
    "G":7,  
    "H":8,  
    "I":9,  
    "J":10, 
    "K":11, 
    "L":12,
    "M":13,
    "N":14,
    "O":15,
    "P":16,
    "Q":17,
    "R":18,
    "S":19,
    "T":20,
    "U":21,
    "V":22,
    "W":23,
    "X":24,
    "Y":25,
    "Z":26,
  }
];

function bin(letter){

  for (var i = 0; i < alpha.length; i++){
      if(alpha[i].hasOwnProperty(letter)){
        return alpha[i][letter];
      }
  }

}

bin("R");bin("E");
Run Code Online (Sandbox Code Playgroud)

Nin*_*olz 5

您可以获取字符串,将其拆分为一个字符数组,并使用parseInt基数36,您可以在其中获得字母的值。稍后加入单个字符串的结果。

var string = 'aed',
    result = string
        .split('')
        .map(c => parseInt(c, 36) - 9)
        .join('');
        
console.log(result);
Run Code Online (Sandbox Code Playgroud)

甚至更短的版本 Array.from

var string = 'aed',
    result = Array.from(string, c => parseInt(c, 36) - 9).join('');
        
console.log(result);
Run Code Online (Sandbox Code Playgroud)