2013-03-01 2 views
1

이 기능이 왜 작동하지 않는지 알고 계십니까?

나는 창을 사용하여 전역 배열의 값을 검색합니다. console.log를 사용하여 arr 객체 값을 얻습니다. 하지만 foreach에서 arr 객체를 사용하려고하면 코드가 손상됩니다. 이유가 무엇입니까?

function setDropDownList(raw_id, val){ 
    // Get the ID 
    var the_id = '#'+raw_id; 
    // Get the array name as a string 
    var arrname = val+"Array"; 
    // get the arr object using the arrname string 
    var arr = window[arrname]; 
    // if I place a console.log here, i get the values for the arr object, but it brakes the .each below: 

    // do a simple foreach 
    // using arr breaks the foreach loop 
    // if I use the actual array declared globally in he header it works. 
    jQuery.each(arr, function(key, value) { 
     var test = value.split('|'); 
    }); 
} 
+0

"깨지다"는 것은 무엇을 의미합니까? '.each'에서는 어떻게됩니까? *'console.log (arr)'은 무엇을 인쇄합니까? –

+0

실제로 어떻게 깨지나요? –

+0

console.log (arr)는 $ .each가 없으면 arr 객체를 잘 보여줍니다. 루프를 수행 할 때 arr에 대한 console.log()는 다음을 보여줍니다. undefined – user2065483

답변

1

이것은 배열의 항목 중 하나 (또는 ​​모두)가 문자열이 아니기 때문입니다.

value.split('|')을 입력 할 때 값이 문자열이어야합니다. 그렇지 않으면 깨질 것입니다.

+0

테스트 용으로 숫자를 사용했습니다 ... 결코 고려하지 않았습니다. 이것이 당신이 16.1 킬로미터의 경험을 가지고있는 이유입니다. – user2065483

+0

저는 실제 전문가들로 붐비는 곳에서 단순한 초보자입니다. 내 대답이 당신을 도왔다 니 기쁘다. – techfoobar

+0

배열을 변경했지만 여전히 작동하지 않습니다 ... 사용할 수있는 분할 외에 다른 방법이 있습니까? arr 대신 배열을 직접 입력하면 작동합니다. – user2065483