2013-03-27 64 views
0

我需要兩個元素進入我的變種busList這樣的(這是硬編碼)2 VAR輸入:使用Javascript - 數組

var busList = [ 
{ RuteNr: '901', RuteNavn: 'Vejle - Kolding'}, 
{ RuteNr: '901-xs', RuteNavn: 'Kolding - Vejle'}, 
{ RuteNr: '401', RuteNavn: 'Kastrup - arhus'}]; 

但在實際的代碼,我收到這一切在一個列表。所以我這樣做:

rutenr = data.busliste[counter].RuteNr; //this line works fine 
    rutenavn = data.busliste[counter].RuteNavn; //this line works fine 
    var busList = [{ RuteNr: rutenr , RuteNavn: rutenavn}]; 

不幸的是,這是行不通的。元素不會進入數組。 有什麼幫助嗎?

編輯:(完整代碼)

$.get('http://localhost:7120/LocationService/GetRouteList', function(data) { 
$('.result').html(data); 
var counter = 0; 
for (var i in data.busliste) 
{ 
    rutenr = data.busliste[counter].RuteNr; 
    rutenavn = data.busliste[counter].RuteNavn; 
    busList.push({ RuteNr: rutenr , RuteNavn: rutenavn}); 
    counter++; 
} 
}); 
+0

不知道你在試圖把它放進去,但看看Array.push()應該做你正在嘗試的? – 2013-03-27 12:53:15

+0

你的原始列表是什麼樣的,你在推行'busList'? – 2013-03-27 12:53:31

+0

請準確地寫出:您得到的輸入,以及您希望爲該輸入獲得的輸出。 – 2013-03-27 12:53:55

回答

2

您需要先創建一個陣列(在counter循環之前)

busList = []; 

然後在counter

rutenr = data.busliste[counter].RuteNr; 
rutenavn = data.busliste[counter].RuteNavn; 
busList.push({ RuteNr: rutenr , RuteNavn: rutenavn}); 

更新:

$.get('http://localhost:7120/LocationService/GetRouteList', function(data) { 
    $('.result').html(data); 
    busList = []; 
    $.each(data.busliste, function(i, v) { 
       busList.push({ 
          RuteNr : v.RuteNr, 
          RuteNavn : v.RuteNavn 
         }); 
      }); 
    console.log(busList) 
}); 
+0

是的,他是對的。控制檯會顯示你「ReferenceError:busList is not defined」 – 2013-03-27 13:10:02

+0

這似乎解決了一半的問題! (給有用的答案給點)。但它不會在代碼中進一步下去(在我的循環之外),它會再次變空。 在循環中這個工作:alert(busList [2] .RuteNr).. 外部循環,它是空的。 注意:busList在方法外部定義。 – Rad 2013-03-27 13:13:37

+1

@dinosaur在'busList = [];'之前刪除'var',因爲我假設你想要的是一個全局變量 – 2013-03-27 13:18:41