我正在尝试像这样在JS中创建多维数组:

在我的app.js文件中,我有这个

 var equipValue = new Array();
 var selectedTrucks  = new Array();


在我的function.js文件中,我有:

for (var i in selectedTrucks) {
    (function(i){
        // Simple Ajax request that return me a Json values
        var ajaxUrl = '/ajaxRequest/getSingleTruckPosition/' + selectedTrucks[i];

        $.ajax({
            url: ajaxUrl,
        })
        .done(function(data) {
            if(data != null){
                //  equipValue doens't go.
                // Unable to set property '0' of undefined or null reference
                equipValue[i] = jQuery.parseJSON(data);
             }
         });


为什么获得:无法设置未定义或空引用的属性“ 0”?
为什么这些变量在我的function.js文件上不起作用,但selectedTrucks完美地起作用?

谢了,兄弟们

编辑

做一些测试,我已经尝试过了:

 equipValue = jQuery.parseJSON(data);


因此,问题不在于独家,而是在运行时创建多维数组?还是类似的?

**编辑2 **

这里的问题:

 var selectedTrucks     = new Array();
 // other 15 lines of codes and then this:
 if(selectedTrucks === undefined || selectedTrucks.length == 0){
        cleanMapMarkers();
    }


为什么即使selectedTrucks为空,cleanMapMakers()总是启动?我发现的所有问题都在这里。
谢谢

最佳答案

更新:似乎equipValue已更改,或在其他地方覆盖为其他类型。


在您的代码中,也许您正在寻找,如果selectedTrucks是未定义的,或者它不是空的

if(selectedTrucks === undefined || selectedTrucks.length != 0){
        cleanMapMarkers();
    }





jQuery.parseJSON()将json文本解析为一个对象,但是回调已经返回一个对象




.done(function(data) {
         if (data != null) {
           equipValue[i] = data;


http://jsfiddle.net/dw74gk7j/

10-04 18:56