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

Retrieving key of a JavaScript object using its index in JQUERY

本文关键字:JavaScript 对象 检索 索引 JQUERY 使用      更新时间:2023-09-26

我有一个这样的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呢?

试试这个:

转换数组中的json:

  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]);

或对象阵列:

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({key:obj[key]});
}
console.log(arr[1]);

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

您有以下选项(这里也是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]);

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

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

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

  • 铬-5
  • Firefox(Gecko)-4.0(2.0)
  • Internet Explorer-9
  • 歌剧-12
  • Safari-5

但您可以使用以下代码进行polyfill:

// 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

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

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

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

    var obj = {
        "set1": [1, 2, 3],
        "set2": [4, 5, 6, 7, 8],
        "set3": [9, 10, 11, 12]
    };
var newary= [];
for (var x in obj) {
  if (obj.hasOwnProperty(x)) { //Thanks Magrangs for reference
     newary.push(x);
  };
};
console.log(newary[1])

/*For Modern Browser use this code*/
    // Retrieve All Keys of Object 
    Object.keys(obj);
    // Retrieve Specific Keys of Object
    Object.keys(obj)[1];