ホームページ >ウェブフロントエンド >jsチュートリアル >ES6 でオブジェクトのプロパティを選択的に抽出するにはどうすればよいですか?

ES6 でオブジェクトのプロパティを選択的に抽出するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-17 11:12:26508ブラウズ

How to Selectively Extract Object Properties in ES6?

ES6 でオブジェクトから特定のプロパティを取得するためのワンライナー

Q: オブジェクトから特定の属性だけを抽出するにはどうすればよいですか? ES6 を使用した簡潔な方法は?

A: 以下にいくつか挙げます。アプローチ:

最もコンパクトなアプローチ:

パラメーター変数の使用を避けるためにパラメーターの構造化を使用する:

({id, title}) => ({id, title})

一般化されたアプローチ:

このメソッドは、Object.assign と計算されたプロパティを使用して、より一般的な解決策を実現します:

function pick(o, ...props) {
    return Object.assign({}, ...props.map(prop => ({[prop]: o[prop]})));
}

プロパティ属性の保持:

設定可能性、ゲッター、セッターなどのプロパティの属性を保持する必要がある場合は、列挙不可能なプロパティを除外する場合は、次のアプローチを使用します:

function pick(o, ...props) {
    var has = p => o.propertyIsEnumerable(p),
        get = p => Object.getOwnPropertyDescriptor(o, p);

    return Object.defineProperties({},
        Object.assign({}, ...props
            .filter(prop => has(prop))
            .map(prop => ({prop: get(props)})))
    );
}

以上がES6 でオブジェクトのプロパティを選択的に抽出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。