如何列出JavaScript对象的属性?

如何列出JavaScript对象的属性?

假设我这样创建一个对象:

var myObject =
        {"ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*"};

检索属性名称列表的最佳方法是什么?也就是说,我想得到一些可变的“键”,这样:

keys == ["ircEvent", "method", "regex"]


料青山看我应如是
浏览 520回答 3
3回答

慕后森

在现代浏览器(IE9+、FF4+、Chrome 5+、Opera 12+、Safari 5+)中,您可以使用内置的Object.key方法:var keys = Object.keys(myObject);上面有一个完整的填充,但一个简化的版本是:var getKeys = function(obj){    var keys = [];    for(var key in obj){       keys.push(key);    }    return keys;}替代var getKeys带着Object.prototype.keys允许你打电话.keys()任何物体上。扩展原型有一些副作用,我不建议这样做。

跃然一笑

如拉什尼克指出,您可以使用“for in”构造来迭代对象的属性名。但是,您将迭代对象的原型链中的所有属性名。如果你想迭代只对于对象自身的属性,可以使用对象#hasOwnProperty()方法。因此具有以下特性。for (var key in obj) {     if (obj.hasOwnProperty(key)) {         /* useful code here */     }}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript