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

102
Vistas
Cómo mutar un objeto en una matriz si tiene la misma clave usando javascript

Amablemente ayúdame a mutar el objeto en javascript. Digamos que tengo una lista de objetos a continuación, quiero objetos si las claves son las mismas en la primera lista Clave "ANTEPIÉ - EXTERIOR" repetida dos veces, el valor de esta clave es diferente, en la primera aparición la izquierda es verdadera y en la segunda aparición la derecha es verdadera, quiero que esto se fusione como "forefoot - outer" : {left: true, right: true}

 [ { "FOREFOOT - OUTER": { "left": true, "right": false } }, { "FOREFOOT": { "left": false, "right": true } }, { "FOREFOOT - INNER": { "left": false, "right": true } }, { "FOREFOOT - OUTER": { "left": false, "right": true } }, ]

La respuesta esperada es

 [ { "FOREFOOT": { "left": false, "right": true } }, { "FOREFOOT - INNER": { "left": false, "right": true } }, { "FOREFOOT - OUTER": { "left": true, "right": true } }, ]

¿Alguien puede ayudarme a encontrar una solución para esto en javascript ES6?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Podrías hacer una pequeña función como esta:

 const filterArray = (arrayToFilter) => { const newArray = arrayToFilter; let i = -1; while (++i < newArray.length - 1) { // So we brows the array since the start finally. j = i; while (++j < newArray.length) { // We create a string to could use it in our if const item_i = Object.keys(newArray[i]) + ''; const item_j = Object.keys(newArray[j]) + ''; // If the 2nd occure is true, then we put the 1st true if (item_i == item_j) { if (newArray[j][item_j].left) newArray[i][item_i].left = true; if (newArray[j][item_j].right) newArray[i][item_i].right = true; newArray.splice(j, 1); // Seeing that we delete an element, we decrease our J j--; } } } return newArray; }

Entonces esto es para fusionar solo el valor "verdadero". Porque en su muestra fusiona solo el valor Verdadero. Si también desea fusiones falsas, edite el if con:

 if (item_i == item_j) { newArray[i][item_i].left = newArray[j][item_j].left; newArray[i][item_i].right = newArray[j][item_j].right; newArray.splice(j, 1); j--; }
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