4

出于某种原因,我无法理解为什么我的数组连接方法不起作用。这是用于审查的快速代码:

function rot13(str) { // LBH QVQ VG!
  var strAry = str.split('');

  var transformed = strAry.map(function(val){

    if(val === " ") return " ";
    else{
      var code = val.charCodeAt(0);
      return  String.fromCharCode(code-13);
    }
  });
  transformed.join('');
 console.log(transformed);
  return transformed;
}

// Change the inputs below to test
rot13("SERR PBQR PNZC");

这个想法是传入字符串,它将被转换为可读的代码字符串,但连接不起作用。此外,一些数字没有正确转换,不知道为什么,该数字的奖励积分。

4

2 回答 2

12

您不保存返回的结果.join()

transformed = transformed.join('');

或者

return transformed.join('');
于 2016-03-09T00:54:35.390 回答
0

换这个就可以了

function rot13(str) { 
// LBH QVQ VG!
  var strAry = str.split('');

  var transformed = strAry.map(function(val){

    if(val === " ") return " ";
    else{
      var code = val.charCodeAt(0);
      return  String.fromCharCode(code-13);
    }
  });
  transformed = transformed.join('');
 console.log(transformed);
  return transformed;
}

jsfiddle链接

于 2016-03-09T00:56:44.343 回答