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

come si trova l'indice del valore "banana"? (che, ovviamente, è "1").Come si ottiene l'indice di un articolo in un array?

grazie

+0

Oops, ho letto male il titolo del tuo post come "come ottenere il numero di elementi nell'array". Bene, ora l'hai reso più chiaro. –

risposta

12

come illustrato di seguito: 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; 
    }; 
} 

Usage:

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

tornerà '1'

+0

>>> è nuovo per me. Che cosa fa? Google è inutile per questo! – spender

+0

Questo dovrebbe essere incluso nella parte superiore degli script e fondamentalmente estende JavaScript per includere il metodo. Sto aggiornando la mia risposta con l'utilizzo. –

+0

@spender, che è l'operatore bitwise * senza segno di spostamento a destra *, in questo contesto, lo usano solo per garantire che il valore 'length' sia un intero senza segno a 32 bit (tutti gli operatori bit a bit lavorano internamente con valori a 32 bit) ... – CMS

4

Non v'è alcun built-in proprietà per restituire l'indice di un particolare oggetto. Se hai bisogno di una funzione, puoi utilizzare la funzione prototipo come definita da durilai. Ma se hai solo bisogno di trovare l'indice puoi usare questo semplice blocco di codice per restituire il valore:

Problemi correlati