2014-02-05 2 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

문제는 여기에 있습니다 : 변수가 존재하는 경우

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

이 검사를 :

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

과 함께 그를 교체합니다.

또한 배열은 문자열을 인덱스로 가질 수 없습니다. 대신, 객체를 사용

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

감사합니다. 당신은 또한 쉼표에 대한 수정을 주실 수 있습니까 – Carlos

+0

@ amit : 그것을해야 내 대답을 편집했습니다. – Cerbrus