2013-09-29 121 views
0

我想popoulate使用Firebug API一个二维数组,填充二维数组在JS

var sites = []; 
    var siteCounter = 0; 

    //Firebase API Calls 

    var messageListRef = new Firebase('https://my.firebaseio.com'); 
    messageListRef.once('value', function(allMessagesSnapshot) { 
     allMessagesSnapshot.forEach(function(messageSnapshot) { 
     var latitude = messageSnapshot.child('latitude').val(); 
     var longitude = messageSnapshot.child('longitude').val(); 
     sites[siteCounter][0] = 'siteCounter'; 
     sites[siteCounter][1] = latitude; 
     sites[siteCounter][2] = longitude; 
     sites[siteCounter][3] = siteCounter; 
     sites[siteCounter][4] = 'This is siteCounter.'; 

     siteCounter++; 
     alert(sites[siteCounter][1] + " " + sites[siteCounter][2]); 
     }); 
    }); 

但是,这打破了网站[siteCounter] [0],并说,这是不确定的。任何线索如何使用这个?

回答

0

如果你想二维数组,你必须初始化这样的:

var tab = new Array(); 

tab[0] = new Array(); 

试试这个代码

sites[siteCounter] = new Array(); 
sites[siteCounter][0] = 'siteCounter'; 
sites[siteCounter][1] = latitude; 
sites[siteCounter][2] = longitude; 
sites[siteCounter][3] = siteCounter; 
sites[siteCounter][4] = 'This is siteCounter.'; 

或直接

sites[siteCounter] = new Array("siteCounter", latitude, longitude, siteCounter, "This is siteCounter."); 
+0

问题是我失去了foreach循环之外的所有值 – CodeMonkey

+0

你确定吗?因为在这个例子中,我写了jsFiddle,我不会失去我的价值http://jsfiddle.net/UdD2L/ –

0

您是否尝试过 sites[siteCounter] = []; 之前sites[siteCounter][0]

我假设你必须将它声明为一个数组才能够将数组放入数组中。