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

146
Vistas
¿Cómo modificar una matriz de objetos si dos objetos siguientes tienen un valor diferente?

Considere esta array :

 const arr = [ {order: 1, mess:"test1"}, {order: 2, mess:"test2"}, {order: 2, mess:"test2"}, {order: 2, mess:"test2"}, {order: 3, mess:"test3"}, {order: 4, mess:"test4"}, ]

arr siempre se ordena por order .

Quiero modificarlo para obtener:

 const arr = [ {order: 1, mess:"test1"}, {order: 2, mess:"test2", sep:true}, {order: 2, mess:"test2"}, {order: 2, mess:"test2"}, {order: 3, mess:"test3", sep:true}, {order: 4, mess:"test4", sep:true}, ]

sep debe insertarse en un objeto si tiene un order diferente al del objeto anterior.

No puedo escribir esta función, aunque sea bastante simple (¡supongo!).
En este momento, tengo esto, pero no funciona en absoluto y no entiendo su comportamiento.

 const arr = [ {order: 1, mess: "test1"}, {order: 2, mess: "test2"}, {order: 2, mess: "test2"}, {order: 2, mess: "test2"}, {order: 3, mess: "test3"}, {order: 4, mess: "test4"}, ] arr.forEach(function(value, i) { i = Number(i) const y = i + 1 if (arr[i] !== undefined && arr[y] !== undefined) { if (arr[i].order === arr[y].order) arr[y].sep = true; } }); console.log(arr)

¿Tienes alguna idea? Gracias

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

0

Puede asignar una nueva matriz y verificar el elemento y el predecesor.

 const data = [{ order: 1, mess: "test1" }, { order: 2, mess: "test2" }, { order: 2, mess: "test2" }, { order: 2, mess: "test2" }, { order: 3, mess: "test3" }, { order: 4, mess: "test4" }], result = data.map((o, i, a) => i && a[i - 1].order !== o.order ? { ...o, sep: true } : o ); console.log(result);
 .as-console-wrapper { max-height: 100% !important; top: 0; }

about 4 years ago · Juan Pablo Isaza Denunciar

0

Prueba esto

 const arr = [ {order: 1, mess: "test1"}, {order: 2, mess: "test2"}, {order: 2, mess: "test2"}, {order: 2, mess: "test2"}, {order: 3, mess: "test3"}, {order: 4, mess: "test4"}, ] arr.forEach((obj,index)=>{ if(index>0 && obj.order != arr[index-1]['order']){ arr[index]['sep']=true } }); console.log(arr)

about 4 years ago · Juan Pablo Isaza Denunciar

0

Cambio más simple de matriz existente

 const arr = [{ order: 1, mess: "test1" }, { order: 2, mess: "test2" }, { order: 2, mess: "test2" }, { order: 2, mess: "test2" }, { order: 3, mess: "test3" }, { order: 4, mess: "test4" }]; arr.forEach((value, i) => { if (i && arr[i-1].order !== arr[i].order) arr[i].sep = true; }); console.log(arr)

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