2012-06-19 5 views
0

에서 배열의 첫 번째 요소 전에 나는 배열로 일부 데이터를 삽입하고하지만 내 콘솔에서점점 쉼표 JQuery와

,9,My firstname,My lastname,[email protected],123456789 

을 얻고있다. 첫 번째 요소 (예 : 9)에서 쉼표를 제거하려면 어떻게해야합니까? 여기에 내가이

9,My firstname,My lastname,[email protected],123456789 

같은 출력이 나는이 배열을 함수 및 루프이 배열을 전달합니다 원하는 내 코드

var data = new Array(); 

       $(row_el.children("td")).each(function(i) { 
        var td = $(this); 
        //var data = td.html(); 
        var td_el = td.attr('class'); 
        //arr[i] = data; 

        if(!td.hasClass("element")) { 
         data[i] = td.html();   
         console.log(i + ": " + data); 
        } 

       }); 

입니다.

+0

첫 번째 요소에는 쉼표가 없을 가능성이 높습니다. 배열에 '9'앞에 빈 요소가 있습니다. – Jon

답변

3

다만 push() (MDN docu) 대신 어레이 내부의 특정 위치에 설정하는 사용

var data = new Array(); 

$(row_el.children("td")).each(function(i) { 
    var td = $(this); 
    //var data = td.html(); 
    var td_el = td.attr('class'); 
    //arr[i] = data; 

    if(!td.hasClass("element")) { 
     data.push(td.html());   
     console.log(i + ": " + data); 
    } 

}); 

문제는 어레이의 모든 요소는 어레이 내의 엔트리에 each() 결과적으로 처리가 진행된다 . 그러나 콜백에 제출 된 색인 (i)은 그럼에도 불구하고 위쪽으로 계산됩니다. 따라서 배열에 항목을 만들지 않는 일부 요소가있는 경우이 위치는 undefined으로 채워집니다 (이후 위치에 요소를 입력하는 한). 이 undefined 항목은 결과를 출력 할 때 빈 문자열로 나타나므로 선두 쉼표가됩니다.

+0

이제이 배열을 전달하는 다른 함수에서이 오류가 발생합니다. Uncaught TypeError : 객체 'length'객체 9, My firstname, My lastname, myemail @ example.com, 123456789가 함수가 아닙니다. – 2619

+0

둘 다 사용했습니다. size() 및 length() 함수는이 배열의 길이를 가져 오지만 모두 위의 오류를 나타냅니다. – 2619

+2

'length'는 함수가 아니며 속성입니다. 'data.length'와 같이 사용 –