gpt4 book ai didi

javascript - javascript 对象中的元素数

转载 作者:IT王子 更新时间:2023-10-29 02:43:22 25 4
gpt4 key购买 nike

有没有办法(从某处)获取 Javascript 对象中的元素数量? (即恒定时间复杂度)。

我找不到检索该信息的属性或方法。到目前为止,我只能考虑对整个集合进行迭代,但这是线性时间。
奇怪的是没有直接访问对象的大小,你不觉得吗。

编辑:
我说的是 Object 对象(不是一般的对象):

var obj = new Object ;

最佳答案

虽然 JS 实现可能会在内部跟踪这样的值,但没有标准的方法来获取它。

过去,Mozilla 的 Javascript 变体暴露了 non-standard __count__ , 但它已从 1.8.5 版中删除。

对于跨浏览器脚本,您必须显式迭代属性并检查 hasOwnProperty():

function countProperties(obj) {
var count = 0;

for(var prop in obj) {
if(obj.hasOwnProperty(prop))
++count;
}

return count;
}

在支持 ECMAScript 5 的实现的情况下,这也可以写成(感谢 Avi Flax)

function countProperties(obj) {
return Object.keys(obj).length;
}

请记住,您还会错过不可枚举的属性(例如数组的长度)。

如果您使用的是 jQuery、Prototype、Mootools、$whatever-the-newest-hype 等框架,请检查它们是否带有自己的集合 API,这可能比使用 native JS 对象更好地解决您的问题.

关于javascript - javascript 对象中的元素数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/956719/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com