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

114
Visualizações
check if an array of object value exist in array of strings, and create a object if not exist

suppose i have two arrays like below =>

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
}]
}]

How can i check if all the books in arr1 which is array of strings exist in arr2[0].books which is array of objects? If it doesnt exist then i want to create an object in arr2[0].books with {label: "whatever string doesn't exist in arr2", count: 0}. I want to do it for each arr2 objects books and categories

I tried below code: -

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

Expected Result -

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
}]
}]

which is label: a2 is added to books in arr2 as it didnt exist, and similarly c1 in arr2 of categories . and sort based on count desc

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

You can do:

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

you can do this

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