[解決済み] 配列に名前付きプロパティをオブジェクトのように追加できるのはなぜですか?
2022-10-21 06:15:28
質問
次の二つの異なるコードスニペットは、私には同等に見えます。
var myArray = Array();
myArray['A'] = "Athens";
myArray['B'] = "Berlin";
と
var myObject = {'A': 'Athens', 'B':'Berlin'};
はどちらも同じ挙動をするからであり、また
typeof(myArray) == typeof(myObjects)
(も同じだからです(どちらも'object'を生成します)。
これらの変種に違いはあるのでしょうか?
どのように解決するのですか?
javascriptでは、事実上すべてのものがオブジェクトなので、quot;abuse" を使用することができます。 配列 オブジェクトに任意のプロパティを設定することで、濫用することができます。これは は有害であると考えるべきで とはいえ。配列は数値でインデックスされたデータのためのもので、数値以外のキーにはオブジェクトを使用します。
なぜ非数値のキーが配列に合わないのか、より具体的な例を挙げてみましょう。
var myArray = Array();
myArray['A'] = "Athens";
myArray['B'] = "Berlin";
alert(myArray.length);
これは '2' ではなく '0' を表示します。事実上、配列に要素は追加されておらず、いくつかの新しいプロパティが配列オブジェクトに追加されただけです。
関連
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] 2つのJavaScriptオブジェクトのプロパティを動的にマージするにはどうすればよいですか?
-
[解決済み] JavaScriptで配列の先頭に新しい配列要素を追加するにはどうすればよいですか?
-
[解決済み] 配列の反復処理に "for...in "を使用するのは、なぜ良くないのでしょうか?
-
[解決済み] JavaScriptのオブジェクトの配列からidでオブジェクトを検索する
-
[解決済み] JavaScriptのオブジェクトを表示するにはどうすればよいですか?
-
[解決済み] JavaScriptのオブジェクトにキーと値のペアを追加するにはどうすればよいですか?
-
[解決済み] Pythonのクラスはなぜオブジェクトを継承するのですか?
-
[解決済み] react-routerのハッシュフラグメントからクエリパラメータを取得する
-
[解決済み] CORS: 認証モードは 'include' です。
最新
-
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によるタッチスクリーンデバイスの検出
-
[解決済み] reactのrender関数でdynamic hrefを作成するには?
-
[解決済み] Chart.jsを使ってドーナツチャートの中にテキストを追加するには?
-
[解決済み] javascript の関数から `undefined` と `null` のどちらを返すのが良いのでしょうか?
-
[解決済み] JavaScriptを使用してHTML要素に属性を追加/更新するには?
-
[解決済み] CORS OriginヘッダーとCSRFトークンによるCSRF保護
-
[解決済み] Javascript / jQueryでAndroid端末を検出する。
-
[解決済み] JavaScriptでの大文字小文字を区別しない正規表現
-
[解決済み] jqueryはjavascriptのライブラリなのかフレームワークなのか?[クローズド]