如何简化此JavaScript?

时间:2016-07-31 22:53:02

标签: javascript simplify

我做到了这一点。任何人都可以建议我如何缩短它而不失其属性?请保持英文简单。

function LetterChanges(str) {
    var se = "";
    for(var i = 0;i < str.length;i++){
        var ser = str.charAt(i);
        if(ser == "A" || ser == "a"){
            if(ser == "A"){se += "B"}
            else {se += "b"}
        }
        if(ser == "B" || ser == "b"){
            if(ser == "B"){se += "C"}
            else {se += "c"}
        }
        if(ser == "C" || ser == "c"){
            if(ser == "C"){se += "D"}
            else {se += "d"}
        }
        if(ser == "D" || ser == "d"){
            if(ser == "D"){se += "E"}
            else {se += "e"}
        }
        if(ser == "E" || ser == "e"){
            if(ser == "E"){se += "F"}
            else {se += "f"}
        }
        if(ser == "F" || ser == "f"){
            if(ser == "F"){se += "G"}
            else {se += "g"}
        }
        if(ser == "G" || ser == "g"){
            if(ser == "G"){se += "H"}
            else {se += "h"}
        }
        if(ser == "H" || ser == "h"){
            if(ser == "H"){se += "I"}
            else {se += "i"}
        }
        if(ser == "I" || ser == "i"){
            if(ser == "I"){se += "J"}
            else {se += "j"}
        }
        if(ser == "J" || ser == "j"){
            if(ser == "J"){se += "K"}
            else {se += "k"}
        }
        if(ser == "K" || ser == "k"){
            if(ser == "K"){se += "L"}
            else {se += "l"}
        }
        if(ser == "L" || ser == "l"){
            if(ser == "L"){se += "M"}
            else {se += "m"}
        }
        if(ser == "M" || ser == "m"){
            if(ser == "M"){se += "N"}
            else {se += "n"}
        }
        if(ser == "N" || ser == "n"){
            if(ser == "N"){se += "O"}
            else {se += "o"}
        }
        if(ser == "O" || ser == "o"){
            if(ser == "O"){se += "P"}
            else {se += "p"}
        }
        if(ser == "P" || ser == "p"){
            if(ser == "P"){se += "Q"}
            else {se += "q"}
        }
        if(ser == "Q" || ser == "q"){
            if(ser == "Q"){se += "R"}
            else {se += "r"}
        }
        if(ser == "R" || ser == "r"){
            if(ser == "R"){se += "S"}
            else {se += "s"}
        }
        if(ser == "S" || ser == "s"){
            if(ser == "S"){se += "T"}
            else {se += "t"}
        }
        if(ser == "T" || ser == "t"){
            if(ser == "T"){se += "U"}
            else {se += "u"}
        }
        if(ser == "U" || ser == "u"){
            if(ser == "U"){se += "V"}
            else {se += "v"}
        }
        if(ser == "V" || ser == "v"){
            if(ser == "V"){se += "W"}
            else {se += "w"}
        }
        if(ser == "W" || ser == "w"){
            if(ser == "W"){se += "X"}
            else {se += "x"}
        }
        if(ser == "X" || ser == "x"){
            if(ser == "X"){se += "Y"}
            else {se += "y"}
        }
        if(ser == "Y" || ser == "y"){
            if(ser == "Y"){se += "Z"}
            else {se += "z"}
                if(ser == "Z" || ser == "z"){
            if(ser == "Z"){se += "A"}
            else {se += "a"}
        }
    }

    return se; 
    }

    LetterChanges("Argument Goes Here"); 

1 个答案:

答案 0 :(得分:1)

如果我理解正确,你只想返回原始字符串,其中每个字母都按字母顺序被下一个字母替换,保持相同的情况。

所以这将天真地完成这项工作:

&#13;
&#13;
function letterChange(str) {
  var alphabet =
    'ABCDEFGHIJKLMNOPQRSTUVWXYZ' +
    'abcdefghijklmnopqrstuvwxyz',
    result = '';
  for (var i = 0, n = str.length; i < n; i++) {
    var pos = alphabet.indexOf(str.charAt(i)) + 1;
    if (pos == 26 || pos == 52) {
      pos -= 26;
    }
    result += alphabet[pos];
  }
  return result;
}
var example = 'ABJKYZabjkyz';
console.log(example, '->', letterChange(example));
&#13;
&#13;
&#13;