Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

109
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda