Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/431.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从javascript中的对象数组中获取对象名称_Javascript - Fatal编程技术网

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

从javascript中的对象数组中获取对象名称,javascript,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/201

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

以下是阵列:

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"," "," "],
...
}
var统计={
“统计1列”:[“日期”、“集团名称”、“产品名称”、“版本”、“版本日期”、“状态”、“总计”、“总计L0”、“总计L1”、“总计L2”、“待验证”、“已创建”、“已更新”],
“统计2标题”:[“2013年12月12日”、“Led齐柏林飞艇”、“屋顶车”、“V5.3”、“2013-08-13”、“已接受”(2013-9-10)、“774”、“334”、“3”、“437”、“20”、“57”、“102”],
“统计3标题”:[“2014年11月22日”,“深紫色”,“上部”,“V1”,“2006-01-01”,“3”,“1”,“0”,“2”,“1”,“1”,“1”],
...
}
我希望通过指定索引来获取特定对象的对象名(例如“STAT 1 COLUMNS”、“STAT 2 TITLE”、“STAT 3 TITLE”…)

例如,给我对象的名称('2')->“STAT 3 TITLE”

你能帮我一下吗?

试试:

function givemepleasethenameoftheobject(index, data) {
  var i = 0;
  for ( var k in data ) {
    if ( index == i++ ) {
      return k;
    }
  }
}

var result = givemepleasethenameoftheobject(2, Statistics);
尝试:

function givemepleasethenameoftheobject(index, data) {
  var i = 0;
  for ( var k in data ) {
    if ( index == i++ ) {
      return k;
    }
  }
}

var result = givemepleasethenameoftheobject(2, Statistics);

这将实现您所需要的:

function getStatisticName(index)
{
    var count = 0;
    for(var i in Statistics)
    {
        if(count == index)
            return i;

        count++;
    }
}

见此

这应该可以满足您的需要:

function getStatisticName(index)
{
    var count = 0;
    for(var i in Statistics)
    {
        if(count == index)
            return i;

        count++;
    }
}
请参见此

尝试“Object.keys();”功能

Object.keys(Statistics); // ['STAT 1 COLUMNS', 'STAT 2 TITLE', 'STAT 3 TITLE'];
尝试“Object.keys();”功能

Object.keys(Statistics); // ['STAT 1 COLUMNS', 'STAT 2 TITLE', 'STAT 3 TITLE'];

JavaScript中不保证对象键顺序,因此
gimmeTheKey(Statistics,2)
不保证返回
“STAT 3 TITLE”

然而:

function gimmeTheKey( obj, idx ){
    return Object.keys( obj )[idx];
}

JavaScript中不保证对象键顺序,因此
gimmeTheKey(Statistics,2)
不保证返回
“STAT 3 TITLE”

然而:

function gimmeTheKey( obj, idx ){
    return Object.keys( obj )[idx];
}

可以像这样循环对象的成员:

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 Explorer 8)兼容,可以使用:


可以像这样循环对象的成员:

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 Explorer 8)兼容,可以使用:


正如pawel在其回答中所指出的,订单是不保证的。正如pawel在其回答中所指出的,订单是不保证的。