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

157
Vistas
Modifique la matriz de objetos para reemplazar con propiedades adicionales si es nulo

Tengo una matriz de objetos de la siguiente manera

 let data = [ { vertical_name: "CORE", projects: [ { name: "Alpha", id: 187, current_result: null, } ] }, { vertical_name: "release", projects: [ { name: "Beta", id: 27, current_result: { success_percentage: 37, failure_percentage: 25, skip_percentage: 36 } }, { name: "Charlie", id: 47, current_result: { success_percentage: 37, failure_percentage: 25, skip_percentage: 36 } } ] } ]

Como puede ver, current_result es nulo en un lugar. Así que tengo que modificar los datos para mostrar que current_result no se prueba. Entonces, en este caso, en lugar de mostrar nulo, quiero mostrar lo siguiente. not_tested es 100 y el porcentaje de omisión, error y éxito es 0 en este caso.

 current_result: { success_percentage: 0, failure_percentage: 0, skip_percentage: 0, not_tested: 100 }

También en otros valores de current_result , dado que no es nulo y tiene valores de success, failure and skip values , not_tested debe ser 0 para esto.

El resultado final debería ser algo como esto. ¿Puede alguien decirme cómo lograr esto, ya que es un poco complicado para mí llegar a una respuesta definitiva?

 result = [ { vertical_name: "CORE", projects: [ { name: "Alpha", id: 187, current_result: { success_percentage: 0, failure_percentage: 0, skip_percentage: 0, not_tested: 100 } } ] }, { vertical_name: "release", projects: [ { name: "Beta", id: 27, current_result: { success_percentage: 37, failure_percentage: 25, skip_percentage: 36, not_tested: 0 } }, { name: "Charlie", id: 47, current_result: { success_percentage: 37, failure_percentage: 25, skip_percentage: 36, not_tested: 0 } } ] } ]
about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Puede hacer un bucle en la matriz de projects de data e insertar las claves que desee de esta manera:

 let data = [ { vertical_name: "CORE", projects: [ { name: "Alpha", id: 187, current_result: null, } ] }, { vertical_name: "release", projects: [ { name: "Beta", id: 27, current_result: { success_percentage: 37, failure_percentage: 25, skip_percentage: 36 } }, { name: "Charlie", id: 47, current_result: { success_percentage: 37, failure_percentage: 25, skip_percentage: 36 } } ] } ] data.forEach(dat => { dat.projects.forEach(prj => { if (!prj.current_result) { prj.current_result = { success_percentage: 0, failure_percentage: 0, skip_percentage: 0, not_tested: 100 }; } else { prj.current_result.not_tested = 0; } }) }) console.log(data)

about 4 years ago · Juan Pablo Isaza Denunciar

0

Puede filtrar los datos de sus resultados y asignar un valor predeterminado.

 const result = data.map((item) => { const projects = item.projects.map((project) => { if (!project?.current_result) { return { ...project, current_result: { success_percentage: 0, failure_percentage: 0, skip_percentage: 0, not_tested: 100, }, }; } else { return project; } }); console.log(result)
about 4 years ago · Juan Pablo Isaza Denunciar

0

Usando Array#map sin mutar los datos originales

 const data = [{"vertical_name":"CORE","projects":[{"name":"Alpha","id":187,"current_result":null}]},{"vertical_name":"release","projects":[{"name":"Beta","id":27,"current_result":{"success_percentage":37,"failure_percentage":25,"skip_percentage":36}},{"name":"Charlie","id":47,"current_result":{"success_percentage":37,"failure_percentage":25,"skip_percentage":36}}]}]; const formatted = data.map(item => Object.assign(item, { projects: item.projects.map(project => { if (project.current_result === null) { project.current_result = { success_percentage: 0, failure_percentage: 0, skip_percentage: 0, not_tested: 100 }; } else project.current_result.not_tested = 0; return project; }) })); console.log(formatted);

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