For循环和变量作用域

for loop and variable scope

本文关键字:作用域 变量 循环 For      更新时间:2023-09-26

我正在努力找出做某事的最佳方法。我有一个充当HTML模板的变量,并从对象数组中插入属性。下面的简单代码:

i = 0;
v =  "<li>",
v += array[i].prop,
v += "</li>";

对象数组:

array = new Array();
array[0] = { name: "1",
             prop: "Property 1"
           }
array[1] = { name: "2",
             prop: "Property 2"
           }

这是我的位:

for (; i < array.length ;) {
    i += 1;
    console.log(i);
    $("body").append(v);
}

i在控制台中返回为0和1,但是prop值返回为"Property 1"两次。据我所知,由于我没有在for循环中声明I,它应该将I的新值返回给最初声明的变量。这显然是一个范围问题,我错过了/不理解。

v在循环内不被重新赋值。您可以多次添加相同的值

不太确定你的问题是什么,但就"做某事的最佳方法"而言,我会说:

var array = [
        {
            name: "1",
            prop: "Property 1"
        },
        {
            name: "2",
            prop: "Property 2"
        }   
    ],
    i = 0,
    v;
for (; i < array.length; i++) {
    v = '<li>' + array[i].prop + '</li>';
    $("body").append(v);
}