【发布时间】:2018-09-02 16:23:59
【问题描述】:
我是 JS 的初学者。我试图理解 Caesar Cipher ROT13,但这对我来说太复杂了。所以我尝试编写自己的代码。如下:
function encrip() {
var alphabet = ["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"];
var str = "Ni Hao";
var string = str.toUpperCase();
for (var i = 0; i < string.length; i++) {
for (var k = 0; k < alphabet.length; k++) {
if(string.charAt(i) == alphabet[k]) {
/* console.log(string.charAt(i) + ' ' + alphabet.indexOf(alphabet[k])); */
}
}
}
}
encrip();
但我被困住了。怎么做:
1. 从 var str 中获取值,然后访问 var alphabet ,将每个字母从 var str 值更改为字母表中的下一个 3(var str 每个元素的当前位置会改变)例如:Input: Ni Hao ==> output: QL KDR
2. 创建通用代码,我的意思是,不仅用于将位置更改 3,而且当我给出值“5”时,每个元素将更改字母表中的下 5 个位置。所以当我改变它的值时可以改变输出
我希望我清楚地解释了一切。提前感谢大家的帮助!!
【问题讨论】:
-
您缺少数组开头的
[。 -
没注意到。我的错。但这并不能解决问题
标签: javascript arrays caesar-cipher