配列の異常: プロパティと要素
JavaScript では、オブジェクトの多用途性が配列にも拡張されます。この奇妙な現象は、配列がオブジェクトのプロトタイプを継承するという事実から発生します。その結果、配列はオブジェクトであるかのように操作できます。
配列のプロパティの割り当て
次のコード スニペットを考えてみましょう:
var myArray = Array(); myArray['A'] = "Athens"; myArray['B'] = "Berlin";
と
var myObject = {'A': 'Athens', 'B':'Berlin'};
これらのコード スニペットは両方とも同等であるように見えます。名前付きプロパティを持つオブジェクトを作成します。ただし、それらの間には根本的な違いがあります。
プロパティ乱用の落とし穴
配列はオブジェクトとして扱うことができますが、配列は主にオブジェクトとして扱われることに注意することが重要です。数値的にインデックス付けされたデータの場合。数値以外のキーを配列に割り当てると、予期しない動作が発生する可能性があります。
たとえば、次のことを考慮してください。
var myArray = Array(); myArray['A'] = "Athens"; myArray['B'] = "Berlin"; alert(myArray.length);
「2」(予想される要素数) を表示する代わりに、アラートには「0」が表示されます。これは、数値以外のキー ('A' および 'B') が、数値インデックスが付けられた要素の数を追跡する配列の長さプロパティをインクリメントしないためです。
結論として、追加すると便利に思えるかもしれませんが、名前付きプロパティを配列に使用する場合、配列の目的を損ない、予期しない動作を引き起こす可能性があるため、この方法は避けてください。数値キー以外の場合は、代わりに純粋なオブジェクトを使用することをお勧めします。
以上がプロパティの割り当ては JavaScript の配列長にどのように影響しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。