オブジェクトを結合してプロパティを削除する


8

このように構造化されたオブジェクトの配列があるとします

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

このように再構築するにはどうすればよいですか?

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

私は試した

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

chkプロパティは正常に削除できますが、2つのオブジェクトを組み合わせるにはどうすればよいですか?


どの二つのオブジェクト?削除後(単一オブジェクトのみ)または削除前?
Prashant Pimpale

2
ロジックは何ですか?の目的はchk何ですか?
トリンコット

1
オブジェクトが1つしかない場合、最終結果を配列にする必要は本当にありますか?
Barmar

回答:


9

それらをObject.assignに展開して新しいオブジェクトを作成し、chkそのオブジェクトからプロパティを削除できます。

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

削除しない別の方法はchk、左側を分解し、残りの構文を使用することです。

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


うわー!これは何_ですか?:)
ステップアップ

1
ただ未使用の変数名。で、それを残している可能性chkが、それは再びそれを使用する意図がないので、少し誤解を招くかもしれない
CertainPerformance
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.