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

¿cómo puedo encontrar el índice del valor "banana"? (que, por supuesto, es "1").¿Cómo obtengo el índice de un elemento en una matriz?

gracias

+0

Vaya, leí mal el título de su puesto como "la forma de obtener el número de elementos en la matriz". Es bueno que lo hayas aclarado ahora. –

Respuesta

12

como se muestra aquí: 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; 
    }; 
} 

Uso:

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

devuelve el mensaje '1'

+0

>>> es nuevo para mí. ¿Qué hace? ¡Google es inútil para eso! – spender

+0

Esto debe incluirse en la parte superior de sus scripts y básicamente extiende JavaScript para incluir el método. Estoy actualizando mi respuesta con el uso. –

+0

@spender, es el * operador de bit * sin signo *, en este contexto, lo usan solo para asegurar que el valor de 'longitud' es un entero sin signo de 32 bits (todos los operadores bit a bit trabajan internamente con entradas de 32 bits) ... – CMS

4

No hay propiedad integrada para volver al índice de un artículo en particular Si necesita una función, puede usar la función de prototipo definida por durilai. Pero si usted sólo tiene que encontrar el índice puede utilizar este bloque de código simple para devolver el valor:

for (var i=0; i<fruits.length; i++) 
{ 
    if (fruits[i] == "banana") 
    { 
    alert(i); 
    } 
} 
Cuestiones relacionadas