1

私はこのような構造を得ました:

var Array = new Array(3);

Array["123"] = ["a","b","c"];

Array["456"] = ["d","e","f"];

Array["789"] = ["g","h","i"];

たとえば、「b」を取得するにはどうすればよいですか

4

4 に答える 4

1
var a = new Array();   
a["123"] = ["a","b","c"];
a["456"] = ["d","e","f"];
a["789"] = ["g","h","i"];
b = a["123"][1];

サンプル: )http://jsbin.com/agolef/1/edit

于 2012-11-22T17:37:16.867 に答える
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"
于 2012-11-22T17:39:54.803 に答える
0

Arrayネイティブコンストラクタです。ネイティブオブジェクトにプロパティを追加しない新しいオブジェクトを使用する:

var obj = {};

obj["123"] = ["a","b","c"];

obj["456"] = ["d","e","f"];

obj["789"] = ["g","h","i"];

obj["123"][1]; // "123"

あなたのコードが行っていたのは、ネイティブArray(配列オブジェクトを作成する関数オブジェクト)に一連のプロパティを追加することでした。配列と他のオブジェクトの違いの詳細については、この質問を参照してください

于 2012-11-22T17:36:21.013 に答える
0

このようなものを使用してください(引用符は必要ありません):

array[123][1]
于 2012-11-22T17:37:15.473 に答える