循环一个JSON对象,没有得到我期待的结果

时间:2014-11-14 06:41:04

标签: javascript jquery

我有一个像这样的AJAX请求:

        $.ajax({
            type: "GET",
            contentType: "application/json; charset=utf-8",
            url: accessURL,
            dataType: 'jsonp',
            success: function (data) {
                console.log(data);
                 $.each(data.results, function (i, val) {
                    //console.log(data);
                    marketId.push(val.id);
                    marketName.push(val.marketname);
                 });

                console.log(marketName);
                console.log(marketId);

返回的数据('console.log(data)')包含:

Object {results: Array[19]}
    results: Array[19]
        0: Object
            id: "1003777"
            marketname: "2.1 El Dorado Hills, Thursday Farmers Market"
        1: Object
        2: Object
        3: Object
        //... etc. each object has an id and marketname

问题在于console.log(marketName);它返回错误的marketName。

我知道这可能和泥一样清楚,所以如果您需要查看整个脚本,请随时查看GitHub。您还可以在www.seedtip.com查看功能示例或要求澄清。

1 个答案:

答案 0 :(得分:1)

在将数组传递给console.log();

之前,必须复制数组

我有一个类似的问题,发现console.log()推迟了一段时间的实际输出(可能还取决于浏览器)。它存储对您的数组的引用,但稍后打印它。如果要传递字符串,这不是问题,但它适用于引用类型。您可能会看到console.log输出中后续更改的影响。