次のようにオブジェクトを作成するとします。
var myObject =
{"ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*"};
プロパティ名のリストを取得する最適な方法は何ですか? つまり、次のような変数「キー」を取得したいと考えています。
keys == ["ircEvent", "method", "regex"]
ベストアンサー1
最新のブラウザ(IE9+、FF4+、Chrome5+、Opera12+、Safari5+)では、組み込みのオブジェクト.キー方法:
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()
。プロトタイプを拡張すると副作用が発生するため、お勧めしません。