Combina objetos y elimina una propiedad


8

Supongo que tengo una matriz de objetos estructurados como este

"err": [
    {
        "chk" : true,
        "name": "test"
    },
    {
        "chk" :true
        "post": "test"
    }
]

¿Cómo puedo reestructurarlo así:

"err": [
    {
        "post": "test"
        "name": "test"
    }
]

Lo intenté

arr.filter(obj => delete obj.chk);

Puede eliminar con éxito la chkpropiedad, pero ¿cómo puedo combinar los dos objetos?


cuales dos objetos? después de eliminar (que tiene un solo objeto) o antes de eliminar?
Praspant Pimpale

2
¿Cuál es la lógica? ¿Para qué sirve chk?
Trincot

1
¿Realmente necesitas que el resultado final sea una matriz si solo hay un objeto en él?
Barmar

Respuestas:


9

Puede extenderlos Object.assignpara crear un nuevo objeto, luego eliminar la chkpropiedad de ese objeto:

const err = [
    {
        "chk" : true,
        "name": "test"
    },
    {
        "chk" :true,
        "post": "test"
    }
];
const newObj = Object.assign({}, ...err);
delete newObj.chk;
console.log([newObj]);

Otro método, sin eliminar, sería desestructurar chken el lado izquierdo y usar la sintaxis rest:

const err = [
    {
        "chk" : true,
        "name": "test"
    },
    {
        "chk" :true,
        "post": "test"
    }
];
const { chk: _, ...newObj } = Object.assign({}, ...err);
console.log([newObj]);


¡Guauu! ¿Qué es esto _? :)
StepUp

1
Solo un nombre de variable no utilizado. Podría haberlo dejado chk, pero eso puede ser un poco engañoso ya que no hay intención de usarlo nuevamente
CertainPerformance
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.