数组未填充

时间:2014-02-13 19:43:42

标签: javascript jquery json

要迭代json文件,我使用:

var list = new Array();
$.getJSON("json.js", function (data) {
    $.each(data, function () {
        $.each(this, function (k, v) {
            var list = new Array();
            console.log(v.value);
            list.push(v.value);
        });
    });
    console.log(list.length);
});

json文件:

{
    "quotes": [
    {
        "value": "q1"
    },
    {
        "value": "q2"
    },
    {
        "value": "q3"
    }
]
}

但是列表的大小为零。

这是控制台输出:

q1 
q2 
q3 
0 

为什么会这样?

2 个答案:

答案 0 :(得分:3)

您要在每个数组中声明一个新数组,只需删除此行:

var list = new Array();

保留第一个。

答案 1 :(得分:0)

因为您使用varlist仅在此代码创建的匿名函数中定义:

$.each(this, function (k, v) {
    var list = new Array();
    console.log(v.value);
    list.push(v.value);
});

这称为变量范围。您在此函数中修改的list与代码第一行中声明的list不同,因为一个是全局的,另一个是本地的。

相关问题