[解決済み] JavaScriptで、オブジェクトに条件付きでメンバーを追加する方法は?
2022-03-14 22:38:34
質問
条件付きでメンバーを追加したオブジェクトを作りたいのですが、どうすればいいですか? 簡単な方法としては
var a = {};
if (someCondition)
a.b = 5;
さて、もう少し慣用的なコードを書きたいと思います。私は試しています。
a = {
b: (someCondition? 5 : undefined)
};
しかし、今は
b
のメンバーです。
a
であり、その値は
undefined
. これは望ましい結果ではありません。
便利な解決策はないのでしょうか?
更新情報
複数のメンバーがいる一般的なケースに対応できるソリューションを探しています。
a = {
b: (conditionB? 5 : undefined),
c: (conditionC? 5 : undefined),
d: (conditionD? 5 : undefined),
e: (conditionE? 5 : undefined),
f: (conditionF? 5 : undefined),
g: (conditionG? 5 : undefined),
};
解決方法は?
純粋なJavascriptでは、あなたの最初のコードスニペット以上にイディオムなものは考えられません。
しかし、jQuery ライブラリを使うことが問題でなければ $.extend() は、ドキュメントに書かれているように、要件を満たしているはずです。
未定義のプロパティはコピーされません。
したがって、書くことができます。
var a = $.extend({}, {
b: conditionB ? 5 : undefined,
c: conditionC ? 5 : undefined,
// and so on...
});
そして、期待する結果を得る(もし
conditionB
は
false
であれば
b
には存在しません。
a
).
関連
-
[解決済み】TypeError: Router.use() はミドルウェアの関数を要求しているが、Object を取得した。
-
[解決済み】ExpressJS - throw er Unhandled errorイベント
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] あるJavaScriptファイルを他のJavaScriptファイルにインクルードするにはどうすればよいですか?
-
[解決済み] JavaScriptでオブジェクトをディープクローンする最も効率的な方法は何ですか?
-
[解決済み] JavaScriptでタイムスタンプを取得する方法は?
-
[解決済み] JavaScriptのオブジェクトが空であることをテストするにはどうすればよいですか?
-
[解決済み】オブジェクトからプロパティを削除する(JavaScript)
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
vue3レスポンシブ対応のためのsetup+ref+reactive
-
vue for 登録ページ効果 vue for sms 認証コードログイン
-
vue ディレクティブ v-html と v-text
-
[解決済み】SyntaxError: JSONの位置1に予期しないトークンoがある。
-
[解決済み】JavaScriptエラー(Uncaught SyntaxError: Unexpected end of input)
-
[解決済み】ExpressJS : res.redirect()が期待通りに動かない?
-
[解決済み】React-Redux: アクションはプレーンオブジェクトでなければならない。非同期アクションにはカスタムミドルウェアを使用する
-
[解決済み】React Uncaught Error: 対象コンテナが DOM 要素でない [重複]。
-
JSクリックイベント - Uncaught TypeError: プロパティ 'onclick' に null を設定できません。
-
モジュールのビルドに失敗しました。Error: ENOENT: no such file or directory, scandir 'D:\.... \node_modules