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

110
Vistas
compruebe si existe una matriz de valor de objeto en una matriz de cadenas y cree un objeto si no existe

supongamos que tengo dos matrices como a continuación =>

 const arr1 = { books: ["a1","a2"], categories: ["c1", "c2"] } const arr2 = [ { "books": [{ label: "a1", count: 2 }, { label: "a3", count: 4 }], "categories": [{ label: "c2", count: 2 }, { label: "c3", count: 4 }] }]

¿Cómo puedo comprobar si todos los libros en arr1 que es una matriz de cadenas, existen en arr2[0].books que es una matriz de objetos? Si no existe, quiero crear un objeto en arr2[0].books con {label: "whatever string doesn't exist in arr2", count: 0} . quiero hacerlo para cada arr2 objetos books y categories

Intenté debajo del código: -

 arr1.books.map(i => { return arr2[0].books.find(item => i == item.label); });

Resultado Esperado -

 arr2 = [ { "books": [{ label: "a1", count: 2 }, { label: "a3", count: 4 }, { label: "a2", count: 0 } ], "categories": [{ label: "c2", count: 2 }, { label: "c3", count: 4 },{ label: "c1", count: 0 }] }]

que es la label: a2 se agrega a los books en arr2 como si no existiera, y de manera similar c1 en arr2 de categories . y ordene según el conteo desc

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

0

Tu puedes hacer:

 const arr1 = { books: ['a1', 'a2'], categories: ['c1', 'c2'] } const arr2 = [ { books: [{ label: 'a1', count: 2 }, { label: 'a3', count: 4 }], categories: [{ label: 'c2', count: 2 }, { label: 'c3', count: 4 }] } ] arr2.forEach(obj => Object.keys(obj).forEach(key => arr1[key] .filter(name => !obj[key].some(({ label }) => label === name)) .forEach(name => obj[key].push({ label: name, count: 0 })) )) console.log(arr2)

about 4 years ago · Juan Pablo Isaza Denunciar

0

Puedes hacerlo

 const arr1 = { books: ["a1","a2"], categories: ["c1", "c2"] } const arr2 = [ { "books": [{ label: "a1", count: 2 }, { label: "a3", count: 4 }], "categories": [{ label: "c2", count: 2 }, { label: "c3", count: 4 }] }] const arr3 = Object.fromEntries(Object.entries(arr1).map(([key, value]) => [ key, value.map(v => arr2[0][key].find(({label}) => label === v) || {label: v, count: 0}) ] )) console.log(arr3)

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