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

87
Vistas
[Javascript]: combina dos matrices de objetos que tienen valores de cadena y matriz
const FirstData = [ { title: 'Title 1', data: ['foo1', 'foo2', 'foo3', 'foo4', 'foo5'], }, { title: 'Title 2', data: ['a', 'b', 'c'], }, { title: 'Title 3', data: ['hello1', 'hello2', 'hello3', 'hello4', 'hello5'], }, ];

Los datos de SecondData se barajan tras bambalinas

 const SecondData = [ { title: 'Title 1', data: ['foo3', 'foo1', 'foo2'], }, { title: 'Title 2', data: ['b', 'c', 'a'], }, { title: 'Title 3', data: ['hello1', 'hello3', 'hello2'], }, ];

SALIDA ESPERADA (debe ser similar a SecondData pero las nuevas cadenas de los datos de FirstData deben insertarse, agregarse o fusionarse):

 [ { title: 'Title 1', data: ['foo3', 'foo1', 'foo2', 'foo4', 'foo5'], }, { title: 'Title 2', data: ['b', 'c', 'a'], }, { title: 'Title 3', data: ['hello1', 'hello3', 'hello2', 'hello4', 'hello5'], }, ];
about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Puede crear un mapa que indexe según el título y luego usar Set para asegurarse de no agregar duplicados. Algo como esto:

 const items = {} firstData.forEach(item => { items[item.title] = new Set([...item.data)] }) secondData.forEach(item => { const existingItem = items[item.title] if(!existingItem) { items[item.title] = new Set([...item.data)] } else { items[item.title] = new Set([...existingItem, ...item.data]) } }) const merged = Object.keys(items).map(title => ({ title: key, data: [...items[key]] }) )
about 4 years ago · Juan Pablo Isaza Denunciar

0

Sugeriría concatenar las matrices y luego usar Array.reduce() para agrupar los valores por title .

Para cada entrada, fusionamos la matriz de datos usando un Set , que descartará cualquier valor duplicado en esta matriz.

 const FirstData = [ { title: 'Title 1', data: ['foo1', 'foo2', 'foo3', 'foo4', 'foo5'], }, { title: 'Title 2', data: ['a', 'b', 'c'], }, { title: 'Title 3', data: ['hello1', 'hello2', 'hello3', 'hello4', 'hello5'], }, ]; const SecondData = [ { title: 'Title 1', data: ['foo3', 'foo1', 'foo2'], }, { title: 'Title 2', data: ['b', 'c', 'a'], }, { title: 'Title 3', data: ['hello1', 'hello3', 'hello2'], }, ]; // Concatenate our data to get input... const input = FirstData.concat(SecondData); // Group each item by title. // For each item, merge the data array using a Set object const result = Object.values(input.reduce((acc, { title, data }) => { acc[title] = acc[title] || { title, data: [] }; acc[title].data = [...new Set([...acc[title].data, ...data])]; return acc; }, {})); console.log('Result:', result)

about 4 years ago · Juan Pablo Isaza Denunciar

0

Puede tomar un Set y filtrar la matriz dada a partir de valores aleatorios.

 const merge = (a, b) => [ ...a, ...b.filter((s => v => !s.has(v))(new Set(a))) ], given = ['foo1', 'foo2', 'foo3', 'foo4', 'foo5'], random = ['foo3', 'foo1', 'foo2'], result = merge(random, given); console.log(...result);

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