我试图获取一些数据并将其存储在数组中。当我这样做时,它可以正常工作并在$ .each内的$ .getJSON中显示结果,但除此之外,表示数组元素未定义。当我在$ .each内记录数组的长度时,它也显示为0。为什么这样表现呢?
谢谢!

var topping  = [];
$.getJSON(getUrlPizza, function(result){
            keepGetData = result;
            var j,k =0;
            $.each(keepGetData, function(i,field){
                getUrlTopping = urlTopping + "/" + keepGetData[i].id;
                $.getJSON(getUrlTopping, function(resultT){
                    topp = resultT;
                    $.each(topp, function(t,fieldT){
                        topping[j] = topp[t];
                        console.log(topping[j]); //it shows data
                        console.log(topping.length); // says 0
                        j++;

                    });
                });

最佳答案

问题出在var行中,因为变量j是在作用域中定义的,但从未分配。将该行更改为

var j = 0,k = 0;

或更好地使用topping.push()

10-08 04:38