Saltar al contenido

Agregar propiedad al objeto cuando no es nulo

Solución:

Podrías usar Object.assign en combinación con el operador ternario:

let data = Object.assign({},
  first === null ? null : {first},
  ...
);

Esto funciona porque Object.assign se saltará null parámetros.

Si está seguro de que el valor de la propiedad no será “falso”, entonces sería un poco más corto escribir:

let data = Object.assign({},
  first && {first},
  ...
);

Suponiendo que el objeto se va a encadenar en algún momento, dado que la encadenamiento ignora los valores indefinidos, también puede intentar

let data = {
  first: first === null ? undefined : first,
  ...
}

Dependiendo de la versión de JS que esté usando, puede usar el operador de propagación ...

const getData = data => ({
  ...data.first  && { 'Custom First Prop Name': data.first },
  ...data.second && { 'Custom Second Prop Name': data.second },
  ...data.third  && { third: data.third },
  ...data.fourth && { fourth: data.fourth },
});

Solución no en línea

Si no necesita agregar el valor en línea, es bastante sencillo y limpio escribir su tarea de esta manera.

const val1 = 1
const val2
const data = {}

val1 && (data.a = val1) // 1
val2 && (data.b = val2) // Not added
// data = { a : 1 }

NOTA: Esto no funcionará si el valor es falso.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *