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

150
Visualizações
Obtenga valores únicos de múltiples matrices de objetos en JS: la forma correcta en javascript

¡Tengo estos dos conjuntos de objetos y quiero obtener valores únicos de ellos! ¿Alguien sabe cómo puedo hacer eso en JS?

 let array1 = [ { categoryName: "category 1" }, { categoryName: "category 2" }, { categoryName: "category 3" }, { categoryName: "category 4" }, ]; let array5 = [ { categoryName: "category 1" }, { categoryName: "category 2" }, { categoryName: "category 3" }, { categoryName: "category 4" }, { categoryName: "category 5" }, ]; let newArray = []; for (const arr5Item of array5) { for (const arr1Item of array1) { if (arr5Item.categoryName !== arr1Item.categoryName) { newArray.push(arr5Item); break; } else { newArray.push(arr1Item); break; } } } console.log("newArray ", newArray);

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

0

Array.reduce puede resolver su problema fácilmente.

Paso 1: fusione toda su matriz en una matriz, por three dots en javascript.

Paso 2: Usa Array.reduce para devolver tu resultado.

 let array1 = [ { categoryName: "category 1" }, { categoryName: "category 2" }, { categoryName: "category 3" }, { categoryName: "category 4" }, ]; let array5 = [ { categoryName: "category 1" }, { categoryName: "category 2" }, { categoryName: "category 3" }, { categoryName: "category 4" }, { categoryName: "category 5" }, ]; const mergedArray = [...array1, ...array5]; const uniqueArray = mergedArray.reduce((acc, item) => { if (!acc.some(e => e.categoryName == item.categoryName)) { acc.push(item); } return acc; }, []); console.log(uniqueArray);

about 4 years ago · Juan Pablo Isaza Relatório

0

Puede lograr fácilmente el resultado usando Set . Usar Set es una forma eficiente

1)

 let array1 = [ { categoryName: "category 1" }, { categoryName: "category 2" }, { categoryName: "category 3" }, { categoryName: "category 4" }, ]; let array5 = [ { categoryName: "category 1" }, { categoryName: "category 2" }, { categoryName: "category 3" }, { categoryName: "category 4" }, { categoryName: "category 5" }, ]; const set = new Set([ ...array1.map((o) => o.categoryName), ...array5.map((o) => o.categoryName), ]); const result = [...set.keys()].map((s) => ({ categoryName: s })); console.log(result);

2)

 let array1 = [ { categoryName: "category 1" }, { categoryName: "category 2" }, { categoryName: "category 3" }, { categoryName: "category 4" }, ]; let array5 = [ { categoryName: "category 1" }, { categoryName: "category 2" }, { categoryName: "category 3" }, { categoryName: "category 4" }, { categoryName: "category 5" }, ]; const set = new Set([ ...array1.map((o) => o.categoryName), ...array5.map((o) => o.categoryName), ]); const result = []; for (let categoryName of set) result.push({ categoryName }); console.log(result);

about 4 years ago · Juan Pablo Isaza Relatório

0

No sólo uno. Hay muchos métodos disponibles para esto. Básicamente necesitas una lógica de bucle.

Encuentre la implementación de Array.reduce .

Lógica

  • Cree una matriz fusionada, utilizando el operador de propagación.
  • Verifique cada nodo de la matriz fusionada en el acumulador.
  • Si el nodo de la matriz fusionada no existe en el acumulador, entonces es único.

violín de trabajo

 let array1 = [{ categoryName: "category 1" },{ categoryName: "category 2" },{ categoryName: "category 3" },{ categoryName: "category 4" }]; let array5 = [{ categoryName: "category 1" },{ categoryName: "category 2" },{ categoryName: "category 3" },{ categoryName: "category 4" },{ categoryName: "category 5" }]; const uniqueValues = [...array1, ...array5].reduce((acc, curr) => { const nodeExist = acc.some(item => item.categoryName === curr.categoryName); const secondArrayExist = array5.some(item => item.categoryName === curr.categoryName); if (!nodeExist) { acc.push(curr); } return acc; }, []); console.log(uniqueValues);

Si desea obtener los nodos que están presentes solo en cualquiera de la matriz, use la lógica a continuación.

Lógica

  • Crear una matriz fusionada.
  • Verifique cada nodo en la matriz fusionada, ya sea que esté presente en array1 y array5 . Si el nodo no está presente en ninguno de array1 o array5 , entonces este es un nodo único.
  • Empuje ese nodo al acumulador.

violín de trabajo

 let array1 = [{ categoryName: "category 1" },{ categoryName: "category 2" },{ categoryName: "category 3" },{ categoryName: "category 4" }]; let array5 = [{ categoryName: "category 1" },{ categoryName: "category 2" },{ categoryName: "category 3" },{ categoryName: "category 4" },{ categoryName: "category 5" }]; const uniqueValues = [...array1, ...array5].reduce((acc, curr) => { const firstArrayExist = array1.some(item => item.categoryName === curr.categoryName); const secondArrayExist = array5.some(item => item.categoryName === curr.categoryName); if (!firstArrayExist || !secondArrayExist) { acc.push(curr); } return acc; }, []); console.log(uniqueValues);

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