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

182
Vistas
How Can I Make a conditional with return in a .map without get out of main function?

My objective is create this object:

{
  name: string,
  birthday: date
}

by this array:

const dataArray = [
 {
  "id": "name",
  "type": "string"
 },
 {
  "id": "birthday",
  "type": "date"
 }
]

So, I create a .map of the array, like this:

const inputsValues = {};

dataArray.map(item => {
  if(item.type === "date"){
    inputsValues[item.id] = new Date(item.value);
    return; // this line is the problem
  }

  inputsValues[item.id] = item.value;
});

Is there a option to make a return in this function without use else?

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

0

const data = [
  {id: "name", type: "string", value: "John"},
  {id: "birthday", type: "date", value: "02.02.22"},
  {id: "holiday", type: "date", value: "03.03.33"}
]

const inputsValues = data
  // the "return" function - filters all non "date" items
  .filter(item => item.type != "date")
  // the map + inputsValue combination in one function
  .reduce((values, item) => ({[item.id]: item.value, ...values}), {})
  
console.log(inputsValues)

about 4 years ago · Juan Pablo Isaza Denunciar

0

Using map only to loop on an array, without using the returned array, is an anti pattern. The function map creates a new array by applying the given callback to all the values of an array ie dataArray. This is not your case because you want an object at the end, not an array.

Tu build your structure you should use, instead, a for of loop, a forEach or Array.reduce().

In case you just need to reduce your array to one single object, reduce is the best option:

const dataArray = [
    {
        "id": "name",
        "type": "string"
    },
    {
        "id": "birthday",
        "type": "date"
    }
];

const obj = dataArray.reduce((carry, { id, type, value = '' }) => {
    carry[id] = type === 'date' ? new Date() : value;

    return carry;
}, {}); // remember to initialize your carry, see reduce doc.

console.log(obj); // My reduced object { name: '', date: 2022-...}
about 4 years ago · Juan Pablo Isaza Denunciar

0

const dataArray = [{
    "id": "name",
    "type": "string"
  },
  {
    "id": "birthday",
    "type": "date"
  }

]
console.log(
  dataArray.reduce((acc, curr) => {
    acc[curr.id] = curr.type;
    return acc;
  }, {})
);

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