Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

188
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!