我找不到解决问题的办法。我可能让事情变得更复杂了。
下面是数组:
var Statistics = {
"STAT 1 COLUMNS" : ["Date","Group Name","Product Name","Version","Version Date","Status","Total","Total L0","Total L1","Total L2","To be validated","Created","Updated"],
"STAT 2 TITLE" : ["12/12/2013","Led Zeppelin","roofies","V5.3","2013-08-13 ","ACCEPTED <br/>(2013-9-10)","774","334","3","437","20","57","102"],
"STAT 3 TITLE" : ["22/11/2014","Deep Purple","upper","V1","2006-01-01 "," ","3","1","0","2","1"," "," "],
...
}我想要对象名(例如'STAT 1列‘,'STAT 2 TITLE','STAT 3 TITLE’.)对于特定对象,通过指定索引。
例如,给予对象(‘2’) -> "STAT 3标题“的名称
你能帮我一把吗?
发布于 2013-09-12 08:56:27
您可以循环遍历这样的对象的成员:
for (var key in Statistics) {
console.log(key);
}但是,您不能通过这样的索引可靠地访问它们。对象中的成员不能保证保持与创建它们相同的顺序,不同的浏览器实际上对成员进行了不同的排序。
如果要以可预测的方式按索引访问成员名称,则需要获取所有名称,然后对它们进行排序:
function givemepleasethenameoftheobject(index) {
var keys = [];
for (var key in Statistics) {
keys.push(key);
}
keys.sort();
return keys[index];
}如果不需要与旧浏览器(例如Internet 8)兼容,可以使用 method
function givemepleasethenameoftheobject(index) {
var keys = Object.keys(Statistics);
keys.sort();
return keys[index];
}发布于 2013-09-12 08:52:36
试着:
function givemepleasethenameoftheobject(index, data) {
var i = 0;
for ( var k in data ) {
if ( index == i++ ) {
return k;
}
}
}
var result = givemepleasethenameoftheobject(2, Statistics);发布于 2013-09-12 08:55:25
尝试'Object.keys();‘函数。
Object.keys(Statistics); // ['STAT 1 COLUMNS', 'STAT 2 TITLE', 'STAT 3 TITLE'];https://stackoverflow.com/questions/18759621
复制相似问题