数组中的 Javascript 标点符号返回'undefined'



我正在尝试编写一个小型密码程序,需要将单词与标点符号组合在一起。如果我使用字母/数字/特殊字符,代码会完美工作!through(,但不使用逗号、句点或问号。我检查了一下,代码返回了undefined,但只针对这三个标点符号。我写了这个代码的前一个版本,去掉了所有的标点符号,效果很好,现在我试图再次添加标点符号。

var alpha = ["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", "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", " ", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "!", "@", "#", "$", "%", "^", "&", "*", "(", ")", ",", ".", "?"];

else if (oldLet == "!") {
index = 63;
keyIndex = keyIndex - 1;
} else if (oldLet == ".") {
index = 84;
keyIndex = keyIndex - 1;
} else if (oldLet == "?") {
index = 85;
keyIndex = keyIndex - 1;
}
var newLet = alpha[index];
alert(newLet);
cipherArray.push(newLet);
}
cipherArray = cipherArray.join("");
document.getElementById("output").innerHTML = cipherArray;
}

我完全不明白为什么代码可以完美地用于字母、数字和特殊字符,但却拒绝正确地用于标点符号。感谢您的帮助。

伙计,我想你弄错了索引,

else if(oldLet == ","){
alert("got here 2" + oldLet);
index = 83;
alert("got here 3" + alpha[index]);
keyIndex = keyIndex -1;
}
else if(oldLet == "."){
index = 84;
keyIndex = keyIndex -1;
}
else if(oldLet == "?"){
index = 85;
keyIndex = keyIndex -1;
}

看,不是83、84、85,而是73、74和75。

你可以检查做:

alert(alpha.indexOf(","));

相关内容

  • 没有找到相关文章

最新更新