我试图获取一些数据并将其存储在数组中。当我这样做时,它可以正常工作并在$ .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()
!