2014-02-05 54 views
0

我正在使用多維數組來存儲數據。它工作,但當我們在控制檯中打印它顯示空白數組,它下面顯示兩個數組,它應該只顯示一個數組裏面。 它應該看起來像這樣。在控制檯中顯示空白陣列

ar['outbound']['Meal']="111,121" 

及其在控制檯這個樣子的 enter image description here

它打印也不定,一件事

如何刪除「」從最後

這裏是fiddle

代碼

var ar = []; 
    ar['Outbound'] = []; 
    ar['Inbound'] = []; 
    var ch=""; 
    var sr= []; 
    sr['Meal']= []; 
    sr['Lounge']= []; 
    $('a').click(function(){ 
    ch = $(this).parent().find('.no').text(); 
    var boundType= $(this).parent().find('.bound').text(); 
    ar[boundType][$(this).parent().find('.service').text()] +=($(this).parent().find('.no').text()) + ","; console.log(ar) 
}) 

回答

1

爲了避免「不確定」你必須設置一個默認值的數組項:

if (!ar[boundType][service]) { 
    ar[boundType][service] = ''; 
} 

而且最好添加一個新值前加上「」:

if (ar[boundType][service].length > 0) { 
    ar[boundType][service] += ','; 
} 

觀看演示:http://jsfiddle.net/AVU54/1/

+0

謝謝老兄。你的代碼像魅力一樣工作 – Carlos

1

的問題是在這裏:

ar[boundType][$(this).parent().find('.service').text()] +=($(this).parent().find('.no').text()) + ","; 

替換有:

var temp = $(this).parent().find('.service').text(); 
ar[boundType][temp] = (ar[boundType][temp] + "," || '') + ($(this).parent().find('.no').text()); 

這用來檢查變量存在。

此外,數組不能有字符串作爲索引。使用對象,而不是:

var ar = {}; 
ar['Outbound'] = {}; 
ar['Inbound'] = {}; 
// etc... 
+0

由於其工作正常。你可以給我修正逗號嗎 – Carlos

+0

@amit:編輯我的答案,應該這樣做。 – Cerbrus