2017-08-20 26 views
0

我有以下;charCodeAt()映射函数内部返回原始阵列

function rot13(str) { 
var result = str.split(""); 
    result.map(function(val) { 
    return val.charCodeAt(); 
    }); 
} 
rot13("SERR PBQR PNZC"); 

当我运行然而,这返回的数组是一样的输入数组

["S", "E", "R", "R", " ", "P", "B", "Q", "R", " ", "P", "N", "Z", "C"] 

有人能帮助我理解这是为什么不工作?

+1

之前'result.map加上'return'(... '' –

+1

返回result.map'一个新的数组..尝试'VAR newArray = result.map ......' - 哦,是啊,有什么@RudolfManusadzhian说是比较准确的:p –

+0

注'返回array'。 .. ROT13返回undefined,所以没有返回数组 –

回答

2

Array.map创建新的数组,不变异原数组,所以你必须明确地返回它或把它分配给一个变量:

function rot13(str) { 
var result = str.split(""); 
return result.map(function(val) { 
    return val.charCodeAt(); 
}); 
}