Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

187
Vistas
Se esperaba un elemento llamado indefinido pero quedó vacío | JavaScript

Escribí una matriz simple donde tengo algunos elementos.

Después de eliminar un elemento, noté que mostraba "vacío" , pero esperaba un tipo de datos indefinido .

  • Ejecuté el mismo código en MDN y obtuve un resultado indefinido .

  • Ejecuté el código en diferentes navegadores, pero como resultado quedó "vacío" .

Cuando busqué el tipo de este elemento, me dio un resultado indefinido.

Me preguntaba por qué tengo 2 términos diferentes para algo donde los tipos son los mismos.

¡Gracias de antemano!

Culhaci Lucas - JeWelCrax

 // code const pizzas = ["Margherita", "Mushroom", "Spinach & Rocket", undefined,"Pineapple & Sweetcorn"] delete pizzas[2]; console.log(pizzas); console.log(typeof pizzas[2]); // output ['Margherita', 'Mushroom', empty, undefined, 'Pineapple & Sweetcorn'] undefined
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Esto es solo una rareza de la consola cuando muestra matrices dispersas.

Cuando se registra una matriz normal (no dispersa) en la consola, se mostrarán todos los elementos, con una coma entre ellos.

Cuando uno de esos elementos contiene el valor undefined , se mostrará undefined .

Cuando la matriz está libre , la matriz no tiene un valor en un índice en particular; más bien, es que la matriz no tiene ese índice en absoluto . Esta es una situación extraña, y para distinguirla de la matriz que contiene el valor undefined , la consola mostrará empty .

Es decir, se decidió que era útil poder distinguir

 const arr = [1, undefined, 3] // arr now has own properties 1 and 2 and 3

de

 const arr = [1, 2, 3] delete arr[1]; // arr now has own properties 1 and 3

En su código, la matriz en realidad contiene los mismos valores en MDN y en los navegadores; es solo que tienen diferentes formas de mostrar índices inexistentes.

La mejor manera de abordar este tipo de cosas es nunca tener arreglos dispersos: son confusos y no tienen mucho propósito en un código bien diseñado. Si desea tener una colección de claves y valores, donde las claves son números enteros pero no necesariamente todos existirán en orden ascendente, use un objeto en lugar de una matriz.

 // This code is perfectly fine: const pizzas = { 0: "Margherita", 1: "Mushroom", 2: "Spinach & Rocket" // ... } delete pizzas[1];

Si desea una matriz y desea eliminar un elemento de modo que los índices se desplacen hacia abajo cuando se elimine un elemento, usaría .filter .

 const pizzas = ["Margherita", "Mushroom", "Spinach & Rocket", undefined,"Pineapple & Sweetcorn"]; const pizzasWithoutSpinach = pizzas.filter((_, i) => i !== 2); console.log(pizzasWithoutSpinach);

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda