2010-03-16 5 views
6
var fruits = [ 'apple', 'banana', 'orange' ]; 

"바나나"값의 색인을 찾는 방법은 무엇입니까? (물론 "1"입니다).배열의 항목 색인을 얻으려면 어떻게해야합니까?

감사

+0

죄송합니다. 게시물 제목을 "배열의 항목 수를 얻는 방법"으로 잘못 읽었습니다. 당신이 그것을 더 분명하게 만들었던 것이 좋다. –

답변

12

다음과 같이 : https://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Objects/Array/IndexOf

if (!Array.prototype.indexOf) 
{ 
    Array.prototype.indexOf = function(elt /*, from*/) 
    { 
    var len = this.length >>> 0; 

    var from = Number(arguments[1]) || 0; 
    from = (from < 0) 
     ? Math.ceil(from) 
     : Math.floor(from); 
    if (from < 0) 
     from += len; 

    for (; from < len; from++) 
    { 
     if (from in this && 
      this[from] === elt) 
     return from; 
    } 
    return -1; 
    }; 
} 

사용법 :

var fruits = [ 'apple', 'banana', 'orange' ]; 
var index = fruits.indexOf('banana'); 

가 반환됩니다 '1'

+0

>>>은 나에게 새로운 이야기입니다. 그것은 무엇을합니까? 구글은 쓸모가 없다! – spender

+0

이것은 스크립트 상단에 포함되어야하며 기본적으로이 메서드를 포함하도록 JavaScript를 확장합니다. 사용법에 대한 답변을 업데이트하고 있습니다. –

+0

@spender, 즉 * 부호없는 오른쪽 시프트 * 비트 연산자는이 문맥에서 'length'값이 32 비트 부호없는 정수 (모든 비트 연산자는 내부적으로 32 비트 int로 작업) ... – CMS

4

이없는 내장 된 인덱스를 반환하는 재산 특정 항목의 함수가 필요한 경우 durilai에 정의 된 프로토 타입 함수를 사용할 수 있습니다. 하지만 색인을 찾으려면이 간단한 코드 블록을 사용하여 값을 반환하면됩니다.

for (var i=0; i<fruits.length; i++) 
{ 
    if (fruits[i] == "banana") 
    { 
    alert(i); 
    } 
} 
관련 문제