Objekt kombinieren und Eigenschaft löschen


8

Angenommen, ich habe eine Reihe von Objekten, die so strukturiert sind

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

Wie kann ich es so umstrukturieren:

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

Ich habe es versucht

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

Die chkEigenschaft kann erfolgreich gelöscht werden. Wie kann ich die beiden Objekte kombinieren?


welche zwei Objekte? nach dem Löschen (das nur ein einziges Objekt hat) oder vor dem Löschen?
Prashant Pimpale

2
Was ist die Logik? Was ist der Zweck von chk?
Trincot

1
Benötigen Sie wirklich das Endergebnis, um ein Array zu sein, wenn es nur ein Objekt enthält?
Barmar

Antworten:


9

Sie können sie verteilen Object.assign, um ein neues Objekt zu erstellen, und dann die chkEigenschaft von diesem Objekt entfernen :

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

Eine andere Methode, ohne zu löschen, wäre, chkauf der linken Seite zu destrukturieren und die Restsyntax zu verwenden:

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


Beeindruckend! Was ist das _? :)
StepUp

1
Nur ein unbenutzter Variablenname. Hätte es belassen können chk, aber das könnte etwas irreführend sein, da nicht beabsichtigt ist, es erneut zu verwenden
CertainPerformance
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.