• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
    • Preguntas
    • Profesores
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Pruebas Online
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

190
Vistas
How can i merge two keys within same object in javascript?

Input:

const array=[{key: '1', value: 'VALUE1'},{key: '2', value: 'VALUE2'},{key: '1', value: 'VALUE3'},{key: '3', value: 'VALUE4'}]

Expected:

const array=[{key: '1', value: 'VALUE1','VALUE3'},{key: '2', value: 'VALUE2'},{key:'3', value: 'VALUE4'}]
almost 3 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

I hope the below function will solve your problem :

var arvConcat = (r) =>{
    var rr=[],or=[];
    for(let ri of r){        
        if(typeof rr[ri.key] === 'undefined')rr[ri.key]=[];
        rr[ri.key].push(ri.value);
    }
    for(let ri in rr){
        or.push({key:ri,value:rr[ri]});
    }
    return or;
}

let r = [{
  key: '1',
  value: 'VALUE1'
}, {
  key: '2',
  value: 'VALUE2'
}, {
  key: '1',
  value: 'VALUE3'
}, {
  key: '3',
  value: 'VALUE4'
}];

let newR = arvConcat(r);

console.log(newR);

Thanks

almost 3 years ago · Santiago Trujillo Denunciar

0

You can achieve this using a normal for loop

let array = [{
    key: '1',
    value: 'VALUE1',
  },
  {
    key: '2',
    value: 'VALUE2',
  },
  {
    key: '1',
    value: 'VALUE3',
  },
  {
    key: '3',
    value: 'VALUE4',
  },
];

let i = 0;
while (i < array.length) {
  if (i + 1 <= array.length) {
    for (let x = i + 1; x < array.length; x++) {
      if (array[i].key === array[x].key) {
        array[i].value = `${array[x].value} ${array[i].value}`;
        array.splice(x, 1);
      }
    }
    i++
  }
}
console.log(array);

almost 3 years ago · Santiago Trujillo Denunciar

0

One way to do it is using Object.values and reduce

//Input:
const array = [{
  key: '1',
  value: 'VALUE1'
}, {
  key: '2',
  value: 'VALUE2'
}, {
  key: '1',
  value: 'VALUE3'
}, {
  key: '3',
  value: 'VALUE4'
}]

const result = Object.values(array.reduce((a,o) => {
      a[o.key] = a[o.key] || {'key': o.key, 'value' : []};
      a[o.key]['value'].push(o.value);
      return a;
    }, {}));

console.log(result);

almost 3 years ago · Santiago Trujillo 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 Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda