Javascript 返回数组中的标点符号 'undefined'
Javascript Punctuation in an array is returning 'undefined'
我正在尝试编写一个小的密码程序,需要 assemble 单词和标点符号。如果我使用 letters/numbers/special 个字符,代码将完美运行! through ) 但不能使用逗号、句号或问号。我检查了一下,代码返回未定义,但仅针对这三个标点符号。我写了这段代码的前一个版本,删除了所有工作正常的标点符号,现在我试图再次添加标点符号。
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(","));
我正在尝试编写一个小的密码程序,需要 assemble 单词和标点符号。如果我使用 letters/numbers/special 个字符,代码将完美运行! through ) 但不能使用逗号、句号或问号。我检查了一下,代码返回未定义,但仅针对这三个标点符号。我写了这段代码的前一个版本,删除了所有工作正常的标点符号,现在我试图再次添加标点符号。
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(","));