[解決済み] ES 6でオブジェクトからプロパティを取得するためのワンライナー
2022-04-24 12:24:50
質問
ES6で、いくつかの属性だけを受け取る関数を最もコンパクトに書くにはどうしたらよいでしょうか?
しかし、フィールドのリストがコード内で繰り返されるのは好きではありません。
もっとスリムな解決策はないのでしょうか?
(v) => {
let { id, title } = v;
return { id, title };
}
解決方法は?
フィールドのリストの繰り返しを避けることはできませんが、よりスリムなものを紹介します。これは、"パラメータ再構築"を使用して、フィールドのリストの繰り返しを避けることはできませんが、よりスリムなものです。
v
パラメータを使用します。
({id, title}) => ({id, title})
(実行可能な例として、この 他の回答 ).
EthanBrownの解答はより一般的なものです。以下は、より慣用的なバージョンです。
Object.assign
と、計算されたプロパティ(
[p]
の部分)。
function pick(o, ...props) {
return Object.assign({}, ...props.map(prop => ({[prop]: o[prop]})));
}
プロパティの属性を保持したい場合、例えば
configurable
とゲッターとセッターを使用し、かつ、列挙不可能なプロパティを省略することができます。
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)})))
);
}
関連
-
[解決済み】ERROR エラーです。スイッチのname属性が指定されていないフォームコントロールの値アクセッサがない
-
[解決済み】ExpressJS : res.redirect()が期待通りに動かない?
-
[解決済み】 `string.split is not a function` というエラーの原因は何ですか?
-
[解決済み] JavaScriptのオブジェクトを1つのキーを除いてクローンするにはどうすればよいですか?
-
[解決済み] JavaScriptでオブジェクトのキー/プロパティの数を効率的にカウントする方法
-
[解決済み] jQueryでJavaScriptオブジェクトから選択する際に、オプションを追加する最も良い方法は何ですか?
-
[解決済み] JavaScriptオブジェクトのプロパティを一覧表示するには?
-
[解決済み] JavaScriptのオブジェクトに動的に名前を付けたプロパティを追加することは可能ですか?
-
[解決済み】オブジェクトからプロパティを削除する(JavaScript)
-
[解決済み】ES6でオブジェクトのプロパティをキーでフィルタリングする
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
JSクロスドメインソリューション リアクト構成 リバースプロキシ
-
親子コンポーネント通信を解決する3つのVueスロット
-
Vueのクラススタイルの使い方の詳細
-
[解決済み] Error : 未定義のプロパティ 'map' を読み取ることができません。
-
[解決済み】Uncaught SyntaxError: JSONの位置0に予期しないトークンuがあります。
-
[解決済み】「X-Frame-Options」を「SAMEORIGIN」に設定したため、フレームでの表示を拒否された。
-
[解決済み】 `string.split is not a function` というエラーの原因は何ですか?
-
[解決済み】リクエストに失敗していないのに、「TypeError: failed to fetch」が表示される。
-
JavaScriptのStringに関する共通メソッド
-
フロントエンド null のプロパティ 'disabled' を読み取れない 問題が解決された