数组内部的Javascript数组 - 如何调用子数组名称

时间:2012-03-26 11:57:08

标签: javascript jquery arrays

以下是我正在做的例子:

   var size = new Array("S", "M", "L", "XL", "XXL");
   var color = new Array("Red", "Blue", "Green", "White", "Black");
   var options = new Array( size, color);

我正在做一个循环选择表单的东西,它工作正常,但我想获取数组子名称,在这种情况下 - 大小或颜色。当我正在做警报(选项[0])时,我得到了数组的整个元素,但是对于某些特定情况,我只想获得数组名称,这就像我已经说过的那样是大小/颜色。有没有办法实现这一目标?感谢

8 个答案:

答案 0 :(得分:24)

我会创建一个这样的对象:

var options = { 
    size: ["S", "M", "L", "XL", "XXL"],
    color: ["Red", "Blue", "Green", "White", "Black"]
};


alert(Object.keys(options));

单独访问密钥:

for (var key in options) {
    alert(key);
}

P.S。:当你创建一个新的数组对象时,不要使用new Array而是使用[]

答案 1 :(得分:5)

你可以使用key这样的值:

var size = new Array("S", "M", "L", "XL", "XXL");
var color = new Array("Red", "Blue", "Green", "White", "Black");
var options = new Array(size, color);

var len = options.length;
for(var i = 0; i<len; i++)
{  
 for(var key in options[i])
    {
       alert(options[i][key])
    }

}

见这里:http://jsfiddle.net/8hmRk/8/

答案 2 :(得分:2)

无法知道options数组的两个成员来自名为sizecolor的变量。

它们也不一定是专门调用的,任何变量也可以指向该数组。

var notSize = size;

console.log(options[0]); // It is `size` or `notSize`?

你可以做的一件事就是在那里使用一个物体......

var options = {
    size: size,
    color: color
}

然后,您可以访问options.sizeoptions.color

答案 3 :(得分:2)

你做不到。该数组没有名称。

你只有两个对数组的引用,一个在变量中,另一个在第三个数组中。

无法找到给定对象的所有引用。

如果名称很重要,请将其与数据一起存储。

var size = { data: ["S", "M", "L", "XL", "XXL"], name: 'size' };
var color = { data: ["Red", "Blue", "Green", "White", "Black"], name: 'color' };
var options = [size, color];

显然,您必须修改访问数据的现有代码(因为您现在拥有options[0].data[0]而不是options[0][0],但您还拥有options[0].name

答案 4 :(得分:1)

是的。 你可以使用

alert(options[0][0])

获取大小“S”

alert(options[0][1])

获取颜色“红色”

答案 5 :(得分:1)

你已经创建了一个数组数组(多维),因此在这种情况下,options [0]是size数组。你需要引用孩子的第一个元素,对你来说是:options [0] [0]。

如果您想循环浏览所有条目,可以使用here所述的for .. in ...语法。

var a = [1,2,4,5,120,12];
for (var val in t) {
    console.log(t[val]);
}

var b = ['S','M','L'];
var both = [a,b];

for (var val in both) {
     for(val2 in both[val]){console.log(both[val][val2])}
}

答案 6 :(得分:0)

在这种情况下,您不希望在数组中插入sizecolor,而是插入对象

var options = { 
    'size': size,
    'color': color
  };

之后您可以通过

访问这些键组
var keys = Object.keys( options );

答案 7 :(得分:0)

数组就像任何其他对象一样。如果你愿意,你可以给它一个名字。

var size = new Array("S", "M", "L", "XL", "XXL");
var color = new Array("Red", "Blue", "Green", "White", "Black");
var options = new Array( size, color);
color.name = "color";
size.name = "size";
options[0].name == "size"
>true