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

153
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar

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