【发布时间】:2015-03-19 23:07:02
【问题描述】:
我对 Javascript 很陌生,但是我有一个问题,我花了一整天的时间来研究和解决,想自己做,但我很卡住。
我的代码很简单,我创建了 5 个函数,1 个测试字母,1 个测试数字,1 个用于开括号,1 个用于闭括号,第五个是句号。这些函数返回 true。
然后,我创建了一个函数,在需要时调用所有这些函数,以根据文本字符串中的内容生成数字输出。
回到顶部,我有一个字符串,我使用 split 创建了一个数组,将字符串中的每个字符放入数组中的单独地址中。这个想法是我使用一个 for 循环来滚动数组并将类型输出到标识中,然后在列表中输出。
问题是它会执行一次循环然后崩溃,我找不到问题,问题出在以下行:
identity = isWhat(ModCompound[x],ModCompound[y]);
用 // 删除它,for 循环运行良好。
我想知道为什么?什么错误?
代码:(原始表格)
<!DOCTYPE html>
<!--
Sjb 19/03/2015
-->
<html>
<head>
<title></title>
</head>
<body>
Chemicals
</br>
Compound: <input id="compound" value="NaCl.2(H20)">
<script>
var identity;
var x;
Compound = document.getElementById('compound').value;
ModCompound = Compound;
ModCompound = ModCompound.split('');
for (i = 0; i < Compound.length; i++){
x = i;
y = i;
document.write(i);
identity = isWhat(ModCompound[x],ModCompound[y]);
document.write(Math.random() + " : " + identity + "</p>");
}
ModCompound= ModCompound.join('');
// Custom Functions
function isWhat(n1,c1) //OUTPUT 1,2,9,0,8
{
if (isLetter(n1,c1) === true) {
return isWhat = 1;
//document.write = "L";
} //OUTPUT 1
if (isNumber(n1,c1) === true) {
return isWhat = 2;
//document.write = "N";
} //OUTPUT 2
if (isOpenBracket(n1,c1) === true){
return isWhat = 9;
//document.write("OB");
} //OUTPUT 9
if (isClosedBracket(n1,c1) === true) {
return isWhat = 0;
//document.write = "CB";
} //OUTPUT 0
if (isFullStop(n1,c1) === true) {
return isWhat = 8;
//document.write = "FS";
} //OUTPUT 8
}
function isNumber(n, c) //OUTPUT(s) TRUE
{
if (n >= 0 || n <= 9 ) {
//document.write(n + " N " + c + "</p>");
return isNumber = true;
}
}
function isLetter(n, c)
{
n = n.charCodeAt(0);
if (((n >= 65) && (n <= 90)) || ((n >= 97) && (n <= 122))) {
//document.write(n + " L " + c + "</p>");
return isLetter = true;
}
}
function isOpenBracket(n,c)
{
if (n === "(") {
//document.write(n + " OB " + c + "</p>");
return isOpenBracket = true;
}
}
function isClosedBracket(n,c)
{
if (n === ")") {
//document.write(n + " CB " + c + "</p>");
return isClosedBracket = true;
}
}
function isFullStop(n,c)
{
if (n === ".") {
//document.write(n + " F " + c + "</p>");
return isFullStop = true;
}
}
</script>
</body>
</html>
【问题讨论】:
标签: javascript arrays function for-loop dynamic