Arrays 在数组中推送ajax json响应

Arrays 在数组中推送ajax json响应,arrays,jquery,push,response,Arrays,Jquery,Push,Response,我尝试遍历一个id数组,并对每个id发出ajax请求。随后,每个响应对象被推送到一个数组中/到目前为止没有问题,但是,当我尝试访问数组中的响应时,问题就开始了。奇怪的是,在控制台日志中,响应显示在数组之外,请参见下文,但数组对象的属性为空/似乎我生成了一个空对象,并附加了一些数据/我的问题是如何访问位于或不在中的对象?阵列 var getAssoc = { returnProds: function (idCache) { var id = idC

我尝试遍历一个id数组,并对每个id发出ajax请求。随后,每个响应对象被推送到一个数组中/到目前为止没有问题,但是,当我尝试访问数组中的响应时,问题就开始了。奇怪的是,在控制台日志中,响应显示在数组之外,请参见下文,但数组对象的属性为空/似乎我生成了一个空对象,并附加了一些数据/我的问题是如何访问位于或不在中的对象?阵列

    var getAssoc = {
        returnProds: function (idCache) {
            var id = idCache;
            var prodData = [];
            var counter = id.length;
            $.each(id, function (i) {
                $.ajax({
                    url: "myurl.php?",
                    data: {
                        'id': id[i]
                    },
                    success: function (data) {
                        prodData[i] = data;
                            counter--;
                            if (counter === 0) console.log(prodData);
                    },                  
                })
            }); 
        }
    };
控制台日志如下所示。测试属性数返回0

[] 0对象{array={…} 1对象{array={…} 2对象{array={…}
3对象{array={…}

在成功回调中,请尝试分析来自服务器的响应:

jQuery.parseJSON(data);

感谢martin的快速回复/导致数组中响应对象的概率为空/顺便说一句,数据类型是我在$.AjaxsetupConsole.logdata中指定的jsonp在成功函数中显示了什么?这将是[],0对象{null},1对象{null},2对象{null},3对象{null};我还感兴趣的是,我是否以及如何能够访问我最初发布的控制台日志中显示的对象/因为当我单击firebug中的对象时,我所关注的数据显示在日志中,所以可能有一种方法可以访问它们。然而,由于父对象是可测试的空对象,我不知道应该如何做,我想我理解问题所在。我试图在一维数组中推送多维数据结构。这可能不是个好主意。我的计划是在另一个部分进一步构建阵列。但似乎有效的是,当我直接在三维数组中推送数据响应时。我仍然好奇的是,虽然最初的数组对象是空的,但在firebug中,我单击了与数组对象一起显示的对象,虽然显然不是数组对象的属性,但数据在那里,结构化且可访问/有什么想法吗?