2

我想有一些我的 for 循环在函数范围内使用的变量(不是全局的)。

我试图将 for 循环包装在这样的函数中,但会导致控制台错误:

function() {
    var data = livingroomTableData;
    for(var i = data[0]; i < data[1]; i++) {
        var elemvalue = data[2] + format(i) + ".png";
        livingroomTableArray[i] = elemvalue;
    }
}

我希望数据变量仅在此 for 循环内(不是全局)具有 livingroomTableData 的值。在其他循环中,我将在数据变量中输入一个不同的变量。

哦,是的,你可能会说,我是个新手。:S

4

3 回答 3

1

javascript中只有函数作用域,不存在块作用域,所以不能让变量只在for循环内。您可以做的是创建一个函数范围。

代码示例:

(function(livingroomTableData) {
    var data = livingroomTableData;
    //... the rest code
})(livingroomTableData);
于 2012-05-31T08:03:34.680 回答
1

最大的问题是这一行:

for(var i = data[0]; i < data[1]; i++) {  

这意味着,从i数组的第一个元素开始,执行循环中的代码,在i每次运行结束时递增 1,直到i不小于data.

我会重写它以向您展示一个工作版本,但不清楚您真正想要做什么。

于 2012-05-31T08:04:32.350 回答
0
function() {
    for(var i = 0; i < livingroomTableData.length; i++) {
        var data = livingroomTableData[i];
        //your code here...
    }
}
于 2012-05-31T08:17:57.787 回答