0

私の問題の解決策が見つかりません。私はおそらく物事をより複雑にしています。

ここに配列があります:

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 COLUMNS」、「STAT 2 TITLE」、「STAT 3 TITLE」など) を取得したいと考えています。

たとえば、オブジェクトの名前を教えてください('2') -> "STAT 3 TITLE"

手を貸してもらえますか?

4

5 に答える 5

1

試してみてください:

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

var result = givemepleasethenameoftheobject(2, Statistics);
于 2013-09-12T08:52:36.943 に答える
1

これはあなたが必要とするものを達成するはずです:

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

        count++;
    }
}

これを見るjsFiddle

于 2013-09-12T08:53:16.727 に答える
1

「Object.keys();」を試してください 関数。

Object.keys(Statistics); // ['STAT 1 COLUMNS', 'STAT 2 TITLE', 'STAT 3 TITLE'];
于 2013-09-12T08:55:25.090 に答える
0

オブジェクト キーの順序は JavaScript では保証されていないため、が返されることgimmeTheKey(Statistics, 2)保証さ"STAT 3 TITLE"れていません。

でも:

function gimmeTheKey( obj, idx ){
    return Object.keys( obj )[idx];
}
于 2013-09-12T08:55:40.437 に答える
0

次のように、オブジェクトのメンバーをループできます。

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 など) との互換性が必要ない場合は、次のObject.Keys方法を使用できます。

function givemepleasethenameoftheobject(index) {
  var keys = Object.keys(Statistics);
  keys.sort();
  return keys[index];
}
于 2013-09-12T08:56:27.923 に答える