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

147
Vistas
Replacing empty/undefined values with nulls in JavaScript array

I have an array and I want to convert the empty/undefined values to null. I have tried the following:

let arr = []
arr[1] = 2
arr[7] = 10
arr = arr.map(x => x || null)

console.log(arr)

But the output of the snippet is not as desired:

[ undefined, 2, undefined, undefined, undefined, undefined, undefined, 10 ]

How do I replace these undefined values with nulls? TIA

Note: Both vanilla JS and lodash answers are acceptable.

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

What you have will work for an array that has undefined elements in it, but not for a sparse array with holes in it, because map doesn't visit the holes in a sparse array; instead, the resulting array just has holes in the same places.

If you want to map the holes as well, you can use Array.from with its mapping callback:

let arr = [];
arr[1] = 2;
arr[7] = 10;
arr = Array.from(arr, x => x || null);

console.log(arr);

Unlike map, Array.from will go through all indexes of the array, including holes, passing undefined as x for the holes in the array to the mapping callback.

Another option is a simple for-of loop, because iteration visits holes in sparse arrays (which is why Array.from works above):

let arr = [];
arr[1] = 2;
arr[7] = 10;
const newArr = [];
for (const value of arr) {
    newArr.push(value || null);
}
arr = newArr;

console.log(arr);


Note that x || null will replace all falsy values with null (including 0 and "", which often trips people up). To just replace undefined, use x ?? null instead:

let arr = [];
arr[1] = 2;
arr[7] = 10;
arr = Array.from(arr, x => x ?? null);

console.log(arr);

or

let arr = [];
arr[1] = 2;
arr[7] = 10;
const newArr = [];
for (const value of arr) {
    newArr.push(value ?? null);
}
arr = newArr;

console.log(arr);

x ?? y (nullish coalescing) is like x || y but only uses y if x evaluates to undefined or null.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Try something very basic:

let arr = [];
arr[1] = 2; arr[7] = 10;
for(let i=0; i< arr.length; i++) {
    if(!arr[i]) arr[i]=null;
}
console.log(arr);

Output:

[
  null, 2,    null,
  null, null, null,
  null, 10
]
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