首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从javascript中的对象数组中获取对象名称

从javascript中的对象数组中获取对象名称
EN

Stack Overflow用户
提问于 2013-09-12 08:50:07
回答 4查看 56关注 0票数 0

我找不到解决问题的办法。我可能让事情变得更复杂了。

下面是数组:

代码语言:javascript
复制
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标题“的名称

你能帮我一把吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-09-12 08:56:27

您可以循环遍历这样的对象的成员:

代码语言:javascript
复制
for (var key in Statistics) {
  console.log(key);
}

但是,您不能通过这样的索引可靠地访问它们。对象中的成员不能保证保持与创建它们相同的顺序,不同的浏览器实际上对成员进行了不同的排序。

如果要以可预测的方式按索引访问成员名称,则需要获取所有名称,然后对它们进行排序:

代码语言:javascript
复制
function givemepleasethenameoftheobject(index) {
  var keys = [];
  for (var key in Statistics) {
    keys.push(key);
  }
  keys.sort();
  return keys[index];
}

如果不需要与旧浏览器(例如Internet 8)兼容,可以使用 method

代码语言:javascript
复制
function givemepleasethenameoftheobject(index) {
  var keys = Object.keys(Statistics);
  keys.sort();
  return keys[index];
}
票数 0
EN

Stack Overflow用户

发布于 2013-09-12 08:52:36

试着:

代码语言:javascript
复制
function givemepleasethenameoftheobject(index, data) {
  var i = 0;
  for ( var k in data ) {
    if ( index == i++ ) {
      return k;
    }
  }
}

var result = givemepleasethenameoftheobject(2, Statistics);
票数 1
EN

Stack Overflow用户

发布于 2013-09-12 08:55:25

尝试'Object.keys();‘函数。

代码语言:javascript
复制
Object.keys(Statistics); // ['STAT 1 COLUMNS', 'STAT 2 TITLE', 'STAT 3 TITLE'];
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18759621

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档