[解決済み] 未定義のオブジェクトに自動的にプロパティを追加するには?
2023-02-20 11:08:52
質問
オブジェクトにプロパティが存在しない場合、自動的に追加する簡単な方法はありますか?
次のような例を考えてみましょう。
var test = {}
test.hello.world = "Hello doesn't exist!"
これは
hello
が定義されていないからです。
なぜこれを尋ねるかというと、いくつかの既存のオブジェクトがありますが、それらがすでに
hello
を持つかどうかわからないオブジェクトがあるからです。実際、私のコードのさまざまな部分にこれらのオブジェクトがたくさんあります。
常に
hello
が存在するかどうかを常にチェックし、存在しない場合は新しいオブジェクトを作成するのは非常に面倒です。
var test = {}
if(test.hello === undefined) test.hello = {}
test.hello.world = "Hello World!"
のようなオブジェクトを自動的に作成する方法はありますか?
hello
のようなオブジェクトを自動的に作成する方法はありますか?
phpのようなものということです。
$test = array();
$test['hello']['world'] = "Hello world";
var_dump($test);
出力します。
array(1) {
["hello"] => array(1) {
["world"] => string(11) "Hello world"
}
}
OKそれは配列ですが、jsの配列ではオブジェクトと同じ問題です。
どのように解決するのですか?
var test = {};
test.hello = test.hello || {};
test.hello.world = "Hello world!";
もし
test.hello
が未定義の場合、空のオブジェクトが設定されます。
もし
test.hello
が以前に定義されていた場合、それは変更されないままです。
var test = {
hello : {
foobar : "Hello foobar"
}
};
test.hello = test.hello || {};
test.hello.world = "Hello World";
console.log(test.hello.foobar); // this is still defined;
console.log(test.hello.world); // as is this.
関連
-
[解決済み] JavaScriptのオブジェクトが空であることをテストするにはどうすればよいですか?
-
[解決済み] JavaScriptで空文字列/未定義文字列/null文字列をチェックするにはどうすればよいですか?
-
[解決済み] JavaScriptのオブジェクトをループスルーまたは列挙するにはどうすればよいですか?
-
[解決済み] オブジェクトが配列であるかどうかを確認するにはどうすればよいですか?[重複]。
-
[解決済み] 2つのJavaScriptオブジェクトのプロパティを動的にマージするにはどうすればよいですか?
-
[解決済み】未定義のオブジェクトプロパティを検出する
-
[解決済み】オブジェクトからプロパティを削除する(JavaScript)
-
[解決済み] 文字列が空白であるかどうかをチェックする
-
[解決済み] JSHintの'+'前の改行不良の説明
-
[解決済み] これは純関数ですか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] JavaScript で範囲を作成する - 奇妙な構文
-
[解決済み] Chart.jsを使ってドーナツチャートの中にテキストを追加するには?
-
[解決済み] node.jsで文字列のsha1ハッシュを取得するにはどうすればよいですか?
-
[解決済み] JavaScriptを使用してHTML要素に属性を追加/更新するには?
-
[解決済み] JavaScriptで:hoverのCSSプロパティを変更する
-
[解決済み] コールバック地獄とは何か、RXはそれをどのように、そしてなぜ解決するのか?
-
[解決済み] Reactメモを使うべきではない場合とは?
-
[解決済み] jQueryで入力ファイルが空かどうかをチェックする方法
-
[解決済み] CORS: 認証モードは 'include' です。
-
[解決済み] jQueryのバージョン1、バージョン2、バージョン3の違いは何ですか?[クローズド]