如何有效地计算 JavaScript 中对象的键/属性的数量

新手上路,请多包涵

计算对象的键/属性数量的最快方法是什么?是否可以在不迭代对象的情况下做到这一点?即,不做:

var count = 0;
for (k in myobj) if (myobj.hasOwnProperty(k)) ++count;

(Firefox 确实提供了一个神奇的 __count__ 属性,但它在版本 4 左右被删除了。)

原文由 mjs 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 784
2 个回答

你可以使用这段代码:

 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;

原文由 Renaat De Muynck 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题