[解決済み】JavaScriptオブジェクト:変数プロパティに文字列で名前を付けてアクセスする【重複あり
2022-03-24 14:18:41
質問
以下のようなjavascriptオブジェクトがあるとします。
var columns = {
left: true,
center : false,
right : false
}
そして、オブジェクトとプロパティ名の両方を渡される関数を持っています。
//should return false
var side = read_prop(columns, 'right');
の本文はどうなるのでしょうか?
read_prop(object, property)
のように見えますか?
解決方法は?
そのための関数は必要ありません。 ブラケット表記 :
var side = columns['right'];
と同じです。
ドット表記
,
var side = columns.right;
という事実を除いては
right
は、変数や関数の戻り値など、ブラケット記法を使う場合にも出てくる可能性があります。
もし、そのための関数が必要なら、ここにあります。
function read_prop(obj, prop) {
return obj[prop];
}
元の質問とは直接関係のない以下のコメントに答えると、ネストされたオブジェクトは複数のブラケットを通して参照することができます。もし、以下のようなネストしたオブジェクトがあるとします。
var foo = { a: 1, b: 2, c: {x: 999, y:998, z: 997}};
プロパティにアクセスすることができます。
x
の
c
を以下のように設定します。
var cx = foo['c']['x']
プロパティが未定義である場合、それを参照しようとすると、次のような結果が返ります。
undefined
(ただし
null
または
false
):
foo['c']['q'] === null
// returns false
foo['c']['q'] === false
// returns false
foo['c']['q'] === undefined
// returns true
関連
-
[解決済み】最大呼び出しスタックサイズ超過エラーとその修正方法とは?
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] JavaScriptでオブジェクトをディープクローンする最も効率的な方法は何ですか?
-
[解決済み] JavaScriptのオブジェクトが空であることをテストするにはどうすればよいですか?
-
[解決済み] JavaScriptのオブジェクトにキーが存在するかどうかをチェックする?
-
[解決済み] JavaScriptで配列の先頭に新しい配列要素を追加するにはどうすればよいですか?
-
[解決済み] コールバック内で正しい `this` にアクセスする方法
-
[解決済み】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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Facebook Graph API のクエリで with=location を使用すると "Uncaught (in promise) undefined" というエラーが発生する。
-
[解決済み】SecurityError: オリジンを持つフレームがクロスオリジンフレームにアクセスするのをブロックした
-
[解決済み] 解決済み】clearInterval()が動作しない [重複] [重複]
-
[解決済み】Google Conversionsが動作しない - スクリプトが読み込まれない
-
[解決済み] [Solved] Uncaught TypeError: nullのプロパティ 'appendChild' を読み取ることができない。
-
[解決済み】WebpackとBabelで「このファイルタイプを扱うには適切なローダーが必要な場合があります。
-
[解決済み】XMLパースエラー:ルート要素が見つからない コンソールの場所 FF
-
[解決済み】 \u003C とは何ですか?
-
[解決済み】中央値の計算 - javascript
-
[解決済み] 変数を使用してオブジェクトのプロパティに動的にアクセスする