数组内部的Javascript数组-如何调用子数组名称
Javascript Array inside Array - how can I call the child array name?
下面是我正在做的事情的示例:
var size = new Array("S", "M", "L", "XL", "XXL");
var color = new Array("Red", "Blue", "Green", "White", "Black");
var options = new Array( size, color);
我正在做一个循环选择表单的事情,效果很好,但我想获取Array子名称,在这种情况下是size或color。当我进行警报(选项[0])时,我会得到数组的全部元素。但对于某些特定的情况,我只想得到数组名称,它是大小/颜色,就像我已经说过的那样。有办法做到这一点吗?
我会创建一个这样的对象:
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);
}
注意:创建新数组对象时,不要使用new Array
,而是使用[]
。
您可以使用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/
无法知道options
数组的两个成员来自名为size
和color
的变量。
它们也不一定是独占调用的,任何变量也可以指向该数组。
var notSize = size;
console.log(options[0]); // It is `size` or `notSize`?
你可以做的一件事是在那里使用一个对象。。。
var options = {
size: size,
color: color
}
然后您可以访问options.size
或options.color
。
你不能。数组没有名称。
您只有两个对数组的引用,一个在变量中,另一个在第三个数组中。
没有办法找到给定对象的所有引用。
如果名称很重要,则将其与数据一起存储。
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
)。
alert(options[0][0])
获得尺寸为"S"的
或
alert(options[0][1])
以获得颜色"红色"
在这种情况下,您不想在数组中插入size
和color
,而是想在对象中插入
var options = {
'size': size,
'color': color
};
之后,您可以通过访问密钥集
var keys = Object.keys( options );
您已经创建了一个数组数组(多维),因此本例中的options[0]是size数组。您需要引用子元素的第一个元素,对您来说是:options[0][0]。
如果您想循环浏览所有条目,可以使用此处描述的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])}
}
数组和其他对象一样。如果你愿意,你可以给它起个名字。
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
- 为什么从数组调用时收到非法调用
- JavaScript:从数组调用函数
- 可以将定义的变量放入数组调用中
- 使用包含参数数组的数组调用函数,而不是仅列出数组
- Javascript:从对象数组调用函数
- 下划线:对引发错误的数组数组调用 _.sample
- Javascript 从数组调用对象方法
- 在 Javascript 中使用 setTimeout 从数组调用函数
- 是什么导致我的绘制数组调用无效操作
- 使用变量数组调用函数
- Javasctipt 从数组调用对象的函数
- AngularJS多维数组调用ng repeat
- 如果使用参数数组调用,则日期会更改结果
- 将对象分配给数组,然后根据位置从数组调用它
- 可观察数组——调用webservice列出所有记录并将其绑定到一个表
- 如何从对象数组调用键数组
- 从数组调用函数
- 我可以/应该通过数组调用firebaseRef.set吗
- 数组调用返回未定义
- 从数组调用 JSON 属性