如何在 JavaScript 中有效地计算对象的键/属性数
2022-08-29 21:55:14
计算对象的键/属性数量的最快方法是什么?是否可以在不迭代对象的情况下执行此操作?即,不做:
var count = 0;
for (k in myobj) if (myobj.hasOwnProperty(k)) ++count;
(Firefox 确实提供了一个魔法属性,但它在版本 4 左右被删除了。__count__
计算对象的键/属性数量的最快方法是什么?是否可以在不迭代对象的情况下执行此操作?即,不做:
var count = 0;
for (k in myobj) if (myobj.hasOwnProperty(k)) ++count;
(Firefox 确实提供了一个魔法属性,但它在版本 4 左右被删除了。__count__
要在任何与 ES5 兼容的环境中执行此操作,例如 Node.js、Chrome、Internet Explorer 9+、Firefox 4+ 或 Safari 5+:请执行以下操作:
Object.keys(obj).length
您可以使用以下代码:
if (!Object.keys) {
Object.keys = function (obj) {
var keys = [],
k;
for (k in obj) {
if (Object.prototype.hasOwnProperty.call(obj, k)) {
keys.push(k);
}
}
return keys;
};
}
然后,您也可以在较旧的浏览器中使用它:
var len = Object.keys(obj).length;