全局变量表示未定义 - JS

global variable says undefined - js

本文关键字:JS 未定义 表示 全局变量      更新时间:2023-09-26

我正在尝试获取一些数据并将它们存储在数组中。 当我这样做时,这工作正常,并在 $.getJSON 中以 $.each 显示结果,但除此之外,说数组元素是未定义的。 同样,当我在 $.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()

result 参数必须为空。

在此行上放置一个 dubugger keepGetData = result; 并在浏览器的控制台窗口中观察结果。 结果必须为空。 然后从你通过这个的地方看