一个工作的两个相同的功能没有

时间:2018-05-22 15:11:01

标签: javascript arrays function

我创建了两个函数, GOODself BADself ,连续调用我在一个更大的脚本illustrated here中调试问题。我无法弄清楚为什么 BADself 会在 aryVarAbi[0] = 5; 行停滞。

如果我先说它,它仍然会发生。根据Firefox中的控制台 aryVarAbi 未定义。

GAB = GOODself(0, 4, 1);
GAB = BADself(0, 4, 1);

function GOODself(GABin, nCols, nRows) {
    var aCol = 0;
    var aryVarABi = [1,1,1,1];
    for (aCol=0; aCol < nCols - 1; aCol++) {
        alert("GOOD1 " + aryVarABi[aCol]);
        aryVarABi[0]= 5;
        alert("GOOD2 " + aryVarABi[aCol]);
    } // for aCol
    return (aryVarABi[0]);
} // GOODself

function BADself(GABin, nCols, nRows) {
    var aCol = 0;
    var aryVarABi = [1,1,1,1];
    for (aCol=0; aCol < nCols - 1; aCol++) {
        alert("BAD1 " + aryVarABi[aCol]);
        aryVarAbi[0] = 5;
        alert("BAD2 " + aryVarABi[aCol]);
    } // for aCol
    return (aryVarABi[0]);
} // BADself

3 个答案:

答案 0 :(得分:2)

JavaScript具有案例敏感性。您已定义var aryVarABi = [1,1,1,1];。注意资本B.你是指aryVarAbi[0] = 5;。注意小写字母b。

答案 1 :(得分:1)

我认为您需要aryVarABi[0] = 5;而不是aryVarAbi[0] = 5;

后者的'b'是小写的。

答案 2 :(得分:1)

Javascript变量区分大小写,因此 aryVarABi 是与 aryVarAbi 不同的变量。

请将行aryVarAbi[0] = 5;更改为aryVarABi[0] = 5;