web-dev-qa-db-ja.com

プロパティがnullでない場合にオブジェクトに追加する

私は小さなAPIに取り組んでおり、ifステートメントの束を使用せずにHTTP PATCH REQUESTを使用してデータを更新したいと考えています。変更されたデータのみで送信データオブジェクトを埋めようとしています。

update() {
    let prop1 = hasBeenChanged.prop1 ? changedData.prop1 : null;
    // ...
    let propN = hasBeenChanged.propN ? changedData.propN : null;

    let data: ISomething = {
        // something like --> property != null ? property: property.value : nothing
    }
}

データオブジェクトを動的に作成する方法はありますか?

12
Dawid Zbiński

Object.assign

let data = Object.assign({},
  first === null ? null || {first},
  ...
);

これは、Object.assignnullパラメータをスキップします。

プロパティ値が「偽物」にならないことが確実な場合は、次のように書く方が少し短くなります。

let data = Object.assign({},
  first && {first},
  ...
);

オブジェクトがある時点で文字列化されると仮定すると、文字列化は未定義の値を無視するので、

let data = {
  first: first === null ? undefined : first,
  ...
}
7
user663031