Cargando...

Búsqueda en arrays

stamps guarda oak, luego elm y otra vez oak, y el cajón sigue del mismo tamaño en esta página porque buscas un valor en lugar de visitar cada casilla.

Pregunta por el sello

En la página anterior forEach visitó cada canción y la llamada misma volvió undefined. Aquí nombras un solo sello, y el cajón ni crece ni se encoge.

Cuatro formas de respuesta

Antes de leer un número, aclara qué forma de respuesta necesitas. Después elige el método según esa forma.

📊 Qué devuelve cada búsqueda

Método La pregunta Qué vuelve Si no está
indexOf casilla del primer acierto un índice -1
lastIndexOf casilla del último acierto un índice -1
includes si el valor está guardado true o false false
find pieza cuya prueba se cumple la pieza misma undefined

Los números de casilla salen de indexOf y de lastIndexOf, mientras que includes y find no te entregan una casilla.

Sello de delante

Pregunta en qué casilla se sienta el primer oak. Espera el número 0.

Primer oak

javascript
let stamps = ["oak", "elm", "oak"];
let slot = stamps.indexOf("oak");
console.log(slot);

El registro muestra 0, y el oak de atrás queda fuera de este resultado.

pine ausente

javascript
let stamps = ["oak", "elm", "oak"];
let slot = stamps.indexOf("pine");
console.log(slot);
console.log(stamps.length);

pine nunca se guardó y el registro muestra -1. La longitud sigue en 3, así que no encontrar no es borrar un sello.

oak de atrás

javascript
let stamps = ["oak", "elm", "oak"];
let slot = stamps.lastIndexOf("oak");
console.log(slot);

El registro muestra 2, o sea el oak del fondo del cajón y no el sello de delante.

Sí o no

javascript
let stamps = ["oak", "elm", "oak"];
console.log(stamps.includes("elm"));
console.log(stamps.includes("pine"));

Para elm sale true. Para pine sale false. Ese false no es -1.

El sello mismo

javascript
let stamps = ["oak", "elm", "oak"];
let hit = stamps.find(function (name) {
return name === "elm";
});
console.log(hit);
let miss = stamps.find(function (name) {
return name === "pine";
});
console.log(miss);

La primera línea es el texto elm y la segunda es undefined. Una prueba que ningún sello supera no es un número de casilla.

Escribe la casilla

Convierte la casilla del primer oak en texto, y si la búsqueda vale -1 muestra la palabra missing en el párrafo.

Demo de la página — casilla o missing

html
<!DOCTYPE html>
<html>
<head>
<title>array-search — page</title>
</head>
<body>
<p id="slot">…</p>
<script>
let stamps = ["oak", "elm", "oak"];
let slot = stamps.indexOf("oak");
let line = "missing";
if (slot !== -1) {
line = String(slot);
}
let box = document.getElementById("slot");
box.textContent = line;
</script>
</body>
</html>

El párrafo muestra 0. Cambia la búsqueda a pine y recarga la página. Entonces verás la palabra missing.

Búscalo tú

Haz estas seis comprobaciones en el mismo cajón.

  1. Anota la casilla del primer oak y espera 0
  2. Anota la búsqueda de pine y espera -1 mientras la longitud sigue en 3
  3. Anota la casilla del último oak y espera 2
  4. Anota por separado si elm está y si pine está
  5. Busca elm con find, busca pine también y pon el texto junto a undefined
  6. Lee el párrafo, busca pine y recarga

Fácil de mezclar

No juntes estos seis casos.

  • No trates -1 como una casilla que se puede leer
  • No leas true o false como si fueran un índice
  • No esperes que find devuelva 1 para elm
  • No acudas a forEach cuando solo quieres un sí o un no
  • No cuentes otro tipo u otra mayúscula como acierto
  • No midas el éxito con if (slot), porque 0 es un acierto real

Qué te llevas

Guarda estas diferencias separadas.

  • El primer acierto o -1 sale de indexOf
  • El último acierto o -1 sale de lastIndexOf
  • El sí o no sale de includes
  • El sello mismo o undefined sale de find
  • No encontrar deja la longitud quieta
  • La página siguiente es la de fechas

🧠 Pon a Prueba tu Conocimiento

Listo para Empezar

Pon a Prueba tu Conocimiento

Ponte a prueba con este cuestionario interactivo y descubre qué tan bien entiendes el tema

❓
8
Preguntas
🎯
70%
Para Aprobar
♾️
∞
Tiempo
🔄
∞
Intentos

📝 Instrucciones

  • Lee cada pregunta cuidadosamente
  • Selecciona la mejor respuesta para cada pregunta
  • Puedes repetir el quiz tantas veces como quieras
  • Tu progreso se mostrará en la parte superior