假设我这样创建一个对象:
var myObject =
{"ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*"};
检索属性名列表的最佳方法是什么?例如,我想以一些变量“键”结束,这样:
keys == ["ircEvent", "method", "regex"]
假设我这样创建一个对象:
var myObject =
{"ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*"};
检索属性名列表的最佳方法是什么?例如,我想以一些变量“键”结束,这样:
keys == ["ircEvent", "method", "regex"]
当前回答
以公认的答案为基础。
如果对象有你想要调用的属性,那么说.properties()试试!
var keys = Object.keys(myJSONObject);
for (var j=0; j < keys.length; j++) {
Object[keys[j]].properties();
}
其他回答
在ES6及后续版本(ECMAScript 2015)中,你可以获得所有属性,如下所示:
let keys = Object.keys(myObject);
如果你想列出所有的值
let values = Object.keys(myObject).map(key => myObject[key]);
因为我几乎在每个项目中都使用了underscore.js,所以我会使用keys函数:
var obj = {name: 'gach', hello: 'world'};
console.log(_.keys(obj));
它的输出将是:
['name', 'hello']
正如slashnick指出的,您可以使用“for in”构造来遍历对象的属性名。但是,您将遍历对象原型链中的所有属性名。如果你只想遍历对象自己的属性,你可以使用object #hasOwnProperty()方法。因此有以下。
for (var key in obj) {
if (obj.hasOwnProperty(key)) {
/* useful code here */
}
}
我是转储功能的超级粉丝。
ajax»JavaScript变量转储在Coldfusion
下载转储功能
可以用jQuery这样做:
var objectKeys = $.map(object, function(value, key) {
return key;
});