次の機能でキーを取得できます(古いブラウザで安全に使用できます)...
var getObjectKeys = function(obj) {
if (Object.keys && typeof Object.keys == "function") {
return Object.keys(obj);
}
var prop, keys = [];
for (prop in obj) {
if (obj.hasOwnProperty(prop)) {
keys.push(prop);
}
}
return keys;
}
jsFiddle。
または、古いブラウザObject.keys()
と同等のものを使用して使用します。[shim][2]
length
返されたプロパティを確認してArray
、キーの数を確認できます。
プロトタイプチェーン上のすべての列挙可能なプロパティを浚渫したい場合は、...を使用できます。
var getObjectKeysIncludingInherited = function(obj) {
var keys = [],
i = 0;
for (keys[i++] in obj);
return keys;
}
jsFiddle。
または、オブジェクトのプロパティを使用してそれを実行したい場合もありますが、使用しないでください。ネイティブJavaScriptオブジェクトを拡張することはやや危険であると考えられており、混乱を招き(プロパティはありませんが、プロパティはあります)、古いブラウザでは機能しません...length
Object
length
Array
Object.defineProperty(Object.prototype, "length", {
get: function() {
return Object.keys(this).length;
}
});
jsFiddle。