0

我试图找出做某事的最佳方法。我有一个充当 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 的新值返回给最初声明的变量。这显然是我遗漏/不理解的范围问题。

提前致谢。

4

2 回答 2

2

v不会在循环内重新分配。您多次附加相同的值。

于 2013-06-13T02:57:14.390 回答
1

不完全确定你的问题是什么,但就“做某事的最佳方式”而言,我会去:

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);
}
于 2013-06-13T02:45:34.643 回答