ホームページ >ウェブフロントエンド >jsチュートリアル >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 サイトの他の関連記事を参照してください。