使用JQUERY中的索引检索JavaScript对象的键
Retrieving key of a JavaScript object using its index in 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呢?
试试这个:
转换数组中的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];
相关文章:
- Chrome开发工具(如何知道我在调用哪个javascript对象)
- 循环遍历以数组为值的Javascript对象
- 从ajax请求中获取javascript对象
- 如何从对象的原型方法访问JavaScript对象属性
- 将XML转换为普通的旧JavaScript对象
- 通过引用传递JavaScript对象
- javascript对象操作:根据指定条件选择属性
- Javascript对象类在单击时打开窗口进行颜色选择,并在更改时替换对象背景颜色
- 如何在异步函数中使用javascript对象
- 临时Javascript对象
- 如何在ASP中为用户控件添加Javascript对象网
- 使用数组向下搜索Javascript对象
- Rails将JavaScript对象存储到Model的有效方式
- JavaScript对象不是从原型链继承的
- 如何创建具有默认值的JavaScript对象字段?(AngularJS模型相关)
- SetInterval在javascript对象中表现怪异
- Javascript 对象和 this 关键字
- 如何在不知道关键字的情况下访问javascript对象值
- 在 JavaScript 对象中设置要使用的运算符的属性
- 如何搜索JavaScript对象并更改值