我正在尝试像这样在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/