gpt4 book ai didi

javascript - JavaScript 对象中的属性数量是否有限制?

转载 作者:可可西里 更新时间:2023-11-01 01:30:22 24 4
gpt4 key购买 nike

我们有一个具有超过 75000 个属性的对象。对象格式如下:

// The key starts with 3 letters and then is followed by 8 numbers
var bigArray = {'AAA########':123456789,
'AAA########':123456790,
'AAA########':123456791
};

JavaScript 对象的属性数量是否有已知限制?根据我的测试,该对象在 65500 个元素时仍然有效。

  • 在 Windows 7、IE9 中脚本崩溃(错误 -2147024882)。
  • Windows XP、IE8 运行良好。

最佳答案

在当前版本的 Chrome(2017 年 9 月)中,我限制在 830 万个键 左右。尝试将其粘贴到您的浏览器控制台中:

let obj = {};
let keyCount = 0;
while(1) {
obj[Math.random()] = Math.random();
if(++keyCount % 10000 === 0) console.log(keyCount);
}

我在 Node.js 中得到了相同的限制:

node --max-old-space-size=20000 -e "let obj = {}; let keyCount = 0; while(1) { obj[Math.random()] = Math.random(); if(++keyCount % 10000 === 0) console.log(keyCount); }"

有趣的是,如果我使用 Map ,我可以在它崩溃之前获得大约 1680 万 key (你可以使用类似 this 的东西来超过这个限制)。

关于javascript - JavaScript 对象中的属性数量是否有限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9282869/

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