Javascript 如何在数组中获取数组中的值

Javascript 如何在数组中获取数组中的值,javascript,arrays,Javascript,Arrays,我有一个这样的结构: var Array = new Array(3); Array["123"] = ["a","b","c"]; Array["456"] = ["d","e","f"]; Array["789"] = ["g","h","i"]; 例如,如何获取“b”Array是本机构造函数。使用不向本机对象添加属性的新对象: var obj = {}; obj["123"] = ["a","b","c"]; obj["456"] = ["d","e","f"]; obj["

我有一个这样的结构:

var Array = new Array(3);

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

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

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

例如,如何获取“b”

Array
是本机构造函数。使用不向本机对象添加属性的新对象:

var obj = {};

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

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

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

obj["123"][1]; // "123"
您的代码所做的是将一组属性添加到本机
数组
,(这是一个生成数组对象的函数对象)。有关数组与其他对象之间差异的更多信息,请参见使用类似的内容(不需要引号):

样本:)

用字符串索引数组可能不是您想要做的事情

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[123][1]
-假设您将
var数组命名为
,请不要使用大写字母作为变量名。使用用于分配给数组的语法,使用它获取该索引处的数组,并使用相同的语法从嵌套数组中获取项。您试图做什么?“Array”是数组的构造函数,可能不能用作变量名。如果它是一个变量名数组[“123”]是引用对象的成员“123”的方式,这将起作用,因为数组是对象,但它不太可能是您真正想要的。也许描述你想要什么并说出你来自哪种语言会有所帮助?@user1689607因为这更清楚地解释了问题。你会投反对票,因为你更喜欢早期版本?我没有告诉你,但我确实看到你在更改它之前投了2票。一个被删除,然后你得到了DV。代码没有向
数组添加属性。这是用数组实例覆盖构造函数(假设代码在全局范围内运行)。好吧,第一行起初没有代码格式,因此很容易忽略。我将使用
[]
而不是上面的
new Array()
,以利新手阅读这些文章。()这并没有明确说明用户将对象视为对象,添加命名属性而不是索引。我认为解释这一点比解释如何访问索引更重要,因为索引很琐碎。@Asad:数组是一个对象,所有数组索引都是命名属性。@user1689607我已经知道这一点。再读一遍我的评论。我说他将
a
视为一个对象,通过添加命名属性而不是数字索引(这是对
数组
类型对象的滥用)。例如,检查a.length将产生0,这对于新用户来说可能是意外的。所有数组索引都是命名属性,但并非所有命名属性都是数组索引。@Asad:对,OP只使用索引。OP中添加的所有属性都将用作数组的索引。
.length
将不是
0
。它将是
790
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"