私はこのような構造を得ました:
var Array = new Array(3);
Array["123"] = ["a","b","c"];
Array["456"] = ["d","e","f"];
Array["789"] = ["g","h","i"];
たとえば、「b」を取得するにはどうすればよいですか
私はこのような構造を得ました:
var Array = new Array(3);
Array["123"] = ["a","b","c"];
Array["456"] = ["d","e","f"];
Array["789"] = ["g","h","i"];
たとえば、「b」を取得するにはどうすればよいですか
var a = new Array();
a["123"] = ["a","b","c"];
a["456"] = ["d","e","f"];
a["789"] = ["g","h","i"];
b = a["123"][1];
a["123"][1]; // yields "b"
a[123][1]; // also yields "b"
文字列で配列にインデックスを付けることは、おそらく意図したことではありません。
var a = new Array(3);
a["123"] = ["a","b","c"]; // "123" causes the array to expand to [0..123]
a["123"][1]; // yields "b"
a[123] = ["a","b","c"]; // this has better performance and is idiomatic javascript.
a[123][1]; // also yields "b"
a["456"] = ["d","e","f"];
a["789"] = ["g","h","i"];
代わりにオブジェクトをマップとして使用したい場合は、これを試してください:
a = new object()
a["123"] = ["a","b","c"];
a["123"][1]; // yields "b"
Array
ネイティブコンストラクタです。ネイティブオブジェクトにプロパティを追加しない新しいオブジェクトを使用する:
var obj = {};
obj["123"] = ["a","b","c"];
obj["456"] = ["d","e","f"];
obj["789"] = ["g","h","i"];
obj["123"][1]; // "123"
あなたのコードが行っていたのは、ネイティブArray
(配列オブジェクトを作成する関数オブジェクト)に一連のプロパティを追加することでした。配列と他のオブジェクトの違いの詳細については、この質問を参照してください
このようなものを使用してください(引用符は必要ありません):
array[123][1]