2013-10-09 1 views

답변

1
  1. .indexOf() 문제는 array 변수 함께 작동합니다.
  2. array 변수 자체는 2 개의 다른 배열을 포함합니다.

아래 코드를 사용해보십시오.

var array = [ 
    ['apple', 23, 1, 20], 
    ['orange', 12, 10, 10] 
]; 
for (var i = 0; i < array.length; i++) { //Iterate through arrays in array 
    if (array[i].indexOf(10) > -1) { 
     alert("Yep"); 
    } else { 
     alert("nope"); 
    } 
} 

확인이 JSFiddle

0

때문에 문제가 될 수있다 : 모든 브라우저에서

  • 사항 Array.indexOf가 지원되지 않는 배열을 중첩 한

    • 다음

    작동해야 함 :

    ,210
    function includes(arrayOfArrays, item) { 
        var array, i, j; 
        for(i=0; i<arrayOfArrays.length; ++i) { 
         array = arrayOfArrays[i]; 
         for(j=0; j<array.length; ++j) { 
          if(array[j] === item) { 
           return true; 
          } 
         } 
        } 
        return false; 
    } 
    
  • 1

    ECMAScript 5에 두 개의 배열 방법 someindexOf

    var search = 10 ; 
    
    var found = a.some(function(v) { 
        return v.indexOf(search) !== -1 ; 
    }); 
    
    if (found) { 
        alert('exists') 
    } 
    
    +0

    +1 흥미롭고 우아하게 보입니다. 배열을 쉽게 반복하는 루핑, 나는 http://jsfiddle.net/praveen_jegan/eqVbz/2/을 만들었습니다. 하나의 질문은 모든 브라우저를 지원합니까? 특히 IE? – Praveen

    +0

    @ user1671639 http://kangax.github.io/es5-compat-table/ – rab

    +0

    즉 9+에서 확인하십시오.하지만 [shim available] (https://developer.mozilla.org/en-US)가 있습니다./docs/Web/JavaScript/Reference/Global_Objects/Array/some # Compatibility)를 사용하지 않는 브라우저의 경우 @rab은'indexOf'를 호출하기 전에 v가 배열인지 확인하고 싶을 것입니다. – thgaskell

    0

    당신은 배열에서 검색하려면 다음 코드를 사용할 수있다.

    <!DOCTYPE html> 
    <html> 
    <body> 
    
    <script> 
    var i,j; 
    var toFind = 10; 
    var array = new Array(); 
    array = [['apple',23,1,20],['orange',12,10,10]] 
    
    for (i=0;i<array.length;i++) 
    { 
        for(j=0;j<array[i].length;j++) 
        { 
         if(array[i][j] == toFind) 
         document.write("element found <br/>"); 
        } 
    } 
    </script> 
    
    </body> 
    </html> 
    

    여기서 toFind는 찾고자하는 요소 또는 번호입니다.

    관련 문제