2013-02-05 2 views
0

내 함수를 호출 할 때 checkIss(), issFullArray.indexOf(issToCheck)은 항상 undefined을 반환합니다. .length을 실행했는데 issFullArray의 내용을 출력합니다. 왜 작동하지 않는지 알 수 없습니다. 배열이 나에게 잘 들립니다. 아래에서 볼 수 있듯이, 나는 명시 적으로 배열로 issArray을 설정하고 일치하는 경우 배열은 각 값을 비교하고 true를 반환 배열을 내 getIssList()자바 스크립트 배열 indexOf가 반환하지 않음

function updateIss() { 
    var issArray = []; 

    var currService = current.u_business_service; 
    var currIss = current.u_is_service; 
    issArray = getIssList(currService).slice(); //getIssList() returns an arry 
    if (checkIss(issArray, currIss) === false) { 
     //do stuff 
    } 
} 

function checkIss(issFullArray, issToCheck) { 
    if (issFullArray.indexOf(issToCheck) < 0) { 
     return false; 
    } else { 
     return true; 
    } 
} 
+3

array.indexOf를 지원하는 브라우저를 사용하고 있습니까? 예를 들어 – adeneo

+1

IE <= 8은 배열에 대해'indexOf()'를 지원하지 않습니다. –

+0

IE9, Firefox 15 및 Chrome 24를 사용해 보았습니다. 실제로 indexOf()를 지원하지 않는 브라우저가 있습니까? 당신이 나에게 묻는다면 어리석은 비트 야 ... – user2042970

답변

2

가장 쉬운 단지 루프에 의해 반환 및 복사를 시도했습니다 그렇지 않으면 false를 반환합니다. 별로 많은 코드와 모든 브라우저에서 작동합니다.

function checkIss(issFullArray, issToCheck) { 
    for(i=0; i<issFullArray.length; i++) { 
     if(issFullArray[i]==issToCheck) { 
      return true; 
     } 
    } 
    return false; 
} 
+0

감사 ElPedro를, 그것은 이걸 네가 사용하게 될 것 같은데! – user2042970