gpt4 book ai didi

javascript - For 语句在上次赋值时返回意外值

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:00:46 24 4
gpt4 key购买 nike

我正在尝试构建一个简单的“密码”来为字符串中的字母分配反向字母表的值(例如 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com