なぜ文字列を配列のキーとして使用するのですか?この値が宣言されていない配列がコンソールに表示されます。しかし、私はそれらの価値を得ることができます。JavaScriptの配列のキーとしての文字列
>> var arr = [ 0, 1, 2, 3 ];
undefined
>> arr["something"] = "aught";
"aught"
>> arr
[0, 1, 2, 3]
>> arr["something"]
"aught"
>> for(var i = arr.length; i--; console.log(arr[ i ]));
3
2
1
0
私は配列はジャバスクリプトのエンジンで「列挙」インターフェースのいくつかの種類を実装したオブジェクトであることを理解しています。 最も興味深いのは、インタプリタが警告またはエラーを投げているわけではないので、データが失われる可能性のある場所を検索するのに少し時間を費やしました。 私は今、私が間違っていたと私は配列の2種類があるJavaScriptで[]
代わりに{}
@abuduba、何も間違っていないので:-)あなたのコードは完全に有効なjavascriptです。 2種類の配列を混在させていますが、それは有効ですので、読者にとってあいまいです。なぜ何か間違っていないときに、何かが間違っていることを通訳者に示させたいのですか? –
これは主に用語の問題ですが、javascriptは一般的に連想配列 '{}'を呼び出しません。彼らはそれをプロパティを持つオブジェクトと呼びます。ほとんどの人が、javascriptオブジェクトを連想配列と呼ぶことで物事を混乱させないのが最善であることに同意しないのですか? – jfriend00
注: '' Object.defineProperty.call(arr、 'something'、 'aught'); ''のように配列に '' defineProperty''を使用しようとするとエラーになります。 – David