Hola usuario de nuestro sitio web, descubrimos la respuesta a tu pregunta, desplázate y la obtendrás aquí.
los indexOf()
El método devuelve el primer índice en el que se puede encontrar un elemento dado en el array, o -1 si no está presente.
Sintaxis
indexOf(searchElement)indexOf(searchElement, fromIndex)
Parámetros
searchElement
- Elemento para ubicar en el array.
fromIndex
Opcional- El índice en el que comenzar la búsqueda. Si el índice es mayor o igual que el arrayse devuelve la longitud de -1, lo que significa que array no se buscará. Si el valor del índice proporcionado es un número negativo, se toma como el desplazamiento desde el final del array. Nota: si el índice proporcionado es negativo, el array todavía se busca de adelante hacia atrás. Si el índice proporcionado es 0, entonces el array será buscado. Predeterminado: 0 (completo array se busca).
Valor devuelto
El primer índice del elemento en el array; -1 si no se encuentra.
Descripción
indexOf()
compara searchElement
a los elementos de la matriz utilizando igualdad estricta (el mismo método utilizado por el ===
o operador triple-igual).
Nota: Para el método String, consulte String.prototype.indexOf()
.
Ejemplos de
Usando indexOf ()
El siguiente ejemplo utiliza indexOf()
para localizar valores en un array.
var array =[2,9,9]; array.indexOf(2);// 0 array.indexOf(7);// -1 array.indexOf(9,2);// 2 array.indexOf(2,-1);// -1 array.indexOf(2,-3);// 0
Encontrar todas las apariciones de un elemento
var indices =[];var array =['a','b','a','c','a','d'];var element ='a';var idx = array.indexOf(element);while(idx !=-1) indices.push(idx); idx = array.indexOf(element, idx +1); console.log(indices);// [0, 2, 4]
Encontrar si un elemento existe en el array o no y actualizando el array
functionupdateVegetablesCollection(veggies, veggie)if(veggies.indexOf(veggie)===-1) veggies.push(veggie); console.log('New veggies collection is : '+ veggies);elseif(veggies.indexOf(veggie)>-1) console.log(veggie +' already exists in the veggies collection.');var veggies =['potato','tomato','chillies','green-pepper'];updateVegetablesCollection(veggies,'spinach');// New veggies collection is : potato,tomato,chillies,green-pepper,spinachupdateVegetablesCollection(veggies,'spinach');// spinach already exists in the veggies collection.
Polyfill
indexOf()
se agregó al estándar ECMA-262 en la 5ª edición; como tal, puede que no esté presente en todos los navegadores. Puede solucionar esto utilizando el siguiente código al comienzo de sus scripts. Esto te permitirá usar indexOf()
cuando todavía no hay soporte nativo. Este algoritmo coincide con el especificado en ECMA-262, 5.a edición, asumiendo TypeError
y Math.abs()
tienen sus valores originales.
// This version tries to optimize by only checking for "in" when looking for undefined and// skipping the definitely fruitless NaN search. Other parts are merely cosmetic conciseness.// Whether it is actually faster remains to be seen.if(!Array.prototype.indexOf)Array.prototype.indexOf =(function(Object, max, min)"use strict"returnfunctionindexOf(member, fromIndex)0, Len)if(i <0) i =max(0, Len + i)elseif(i >= Len)return-1if(member ===void0)// undefinedfor(; i !== Len;++i)if(that[i]===void0&& i in that)return i elseif(member !== member)// NaNreturn-1// Since NaN !== NaN, it will never be found. Fast-path it.else// all elsefor(; i !== Len;++i)if(that[i]=== member)return i return-1// if the value was not found, then return -1)(Object, Math.max, Math.min)
Sin embargo, si está más interesado en todos los pequeños detalles técnicos definidos por el estándar ECMA, y está menos preocupado por el rendimiento o la concisión, entonces puede encontrar que este polyfill más descriptivo sea más útil.
// Production steps of ECMA-262, Edition 5, 15.4.4.14// Reference: https://es5.github.io/#x15.4.4.14if(!Array.prototype.indexOf)Array.prototype.indexOf=function(searchElement, fromIndex)"use strict";var k;// 1. Let o be the result of calling ToObject passing// the this value as the argument.if(this==null)thrownewTypeError('"this" is null or not defined');var o =Object(this);// 2. Let lenValue be the result of calling the Get// internal method of o with the argument "length".// 3. Let len be ToUint32(lenValue).var len = o.length >>>0;// 4. If len is 0, return -1.if(len ===0)return-1;// 5. If argument fromIndex was passed let n be// ToInteger(fromIndex); else let n be 0.var n = fromIndex ;
Especificaciones
Especificación |
---|
Especificación del lenguaje ECMAScript (ECMAScript) #segundo-array.prototype.indexof |
Compatibilidad del navegador
Escritorio | Móvil | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Cromo | Borde | Firefox | explorador de Internet | Ópera | Safari | WebView Android | Chrome Android | Firefox para Android | Opera Android | Safari en IOS | Internet de Samsung | |
indexOf |
1 | 12 | 1,5 | 9 | 9.5 | 3 | ≤37 | 18 | 4 | 10.1 | 1 | 1.0 |
Ver también
Array.prototype.lastIndexOf()
TypedArray.prototype.indexOf()
String.prototype.indexOf()
Sección de Reseñas y Valoraciones
Finalizando este artículo puedes encontrar las anotaciones de otros usuarios, tú además tienes la libertad de mostrar el tuyo si te apetece.