作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试构建一个简单的“密码”来为字符串中的字母分配反向字母表的值(例如 a=z b=y 等)我构建了一个 for 语句,它似乎一直有效直到最后一次调用,而不是给出反向值,而是给出原始值。
我注释掉了 for 语句中的每一行,然后逐行检查它们的返回值。倒数第二个语句 (c = rev.indexOf(c);) 给出了 25、24、23 的值(正如预期的那样)所以我不明白为什么当它在“字母”矩阵中查找它们时它给出了一个返回 a、b、c 而不是 z、y、x。
var letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'y', 'x', 'z'];
var rev = letters.reverse();
var stringy = function(n){
ns = n.split("");
for (i = 0; i < n.length; i++){
c = ns[i];
c = rev.indexOf(c);
c = letters[c];
console.log(c);
}
}
stringy("abc");
最佳答案
letters.reverse()
不只是返回颠倒的数组。它原地反转数组。
如果在 letters.reverse()
之后检查 letters
的内容,您会发现顺序已颠倒。
您可以使用 .slice()
来制作数组的副本,然后您可以反转:
var rev = letters.slice().reverse();
关于javascript - For 语句在上次赋值时返回意外值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39233334/
我是一名优秀的程序员,十分优秀!