使用JQUERY中的索引检索JavaScript对象的键

时间:2015-11-18 11:25:33

标签: javascript jquery

我是这样的JavaScript对象。

var obj = {
    "set1": [1, 2, 3],
    "set2": [4, 5, 6, 7, 8],
    "set3": [9, 10, 11, 12]
};

这个JavaScript对象将是完全动态的。所以我需要使用一些索引方法获取此JavaScript对象的键。喜欢

key[1] should return "set2"

那么如何从JavaScript对象中获取任何索引的ID?

5 个答案:

答案 0 :(得分:1)

试试这个:

转换数组中的json:

readURL()

或对象数组:

  var obj = {
        "set1": [1, 2, 3],
        "set2": [4, 5, 6, 7, 8],
        "set3": [9, 10, 11, 12]
    };
    var arr = []
    for (var key in obj) {
        arr.push(obj[key]);
    }
    console.log(arr[1]);

的jsfiddle:https://jsfiddle.net/3yx8a12e/

答案 1 :(得分:1)

你有这些选项(这里也是JSFiddle):

var obj = {
    "set1": [1, 2, 3],
    "set2": [4, 5, 6, 7, 8],
    "set3": [9, 10, 11, 12]
};

var sets = [];
for (var o in obj) {
  if (obj.hasOwnProperty(o)) { //Thanks Magrangs for reference
     sets.push(o);
  };
};

//Or in modern browsers
//var sets = Object.keys(obj);

console.log(sets[1]);

答案 2 :(得分:0)

您可以使用Object.keys(obj)获取对象键的数组。

在您的示例中,Object.keys(obj)[1]将返回“set2”。

请注意,旧版浏览器不支持Object.keys(请参阅下面的浏览器兼容性指南):

  • Chrome - 5
  • Firefox(Gecko) - 4.0(2.0)
  • Internet Explorer - 9
  • Opera - 12
  • Safari - 5

但您可以使用以下代码对其进行填充:

// From https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys
if (!Object.keys) {
  Object.keys = (function() {
    'use strict';
    var hasOwnProperty = Object.prototype.hasOwnProperty,
        hasDontEnumBug = !({ toString: null }).propertyIsEnumerable('toString'),
        dontEnums = [
          'toString',
          'toLocaleString',
          'valueOf',
          'hasOwnProperty',
          'isPrototypeOf',
          'propertyIsEnumerable',
          'constructor'
        ],
        dontEnumsLength = dontEnums.length;

    return function(obj) {
      if (typeof obj !== 'object' && (typeof obj !== 'function' || obj === null)) {
        throw new TypeError('Object.keys called on non-object');
      }

      var result = [], prop, i;

      for (prop in obj) {
        if (hasOwnProperty.call(obj, prop)) {
          result.push(prop);
        }
      }

      if (hasDontEnumBug) {
        for (i = 0; i < dontEnumsLength; i++) {
          if (hasOwnProperty.call(obj, dontEnums[i])) {
            result.push(dontEnums[i]);
          }
        }
      }
      return result;
    };
  }());
}

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys

答案 3 :(得分:0)

您可以检索此代码的所有密钥

{{1}}

答案 4 :(得分:0)

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

数据 - 您的js对象,i - 成员索引