我正在制作一个用于在浏览器中从模型中删除几何体的工具.

在删除过程的某些步骤中,我获取一个充满索引的数组,并从中创建一个集,以获得未重复索引的array.

function GetSetFromArray(array){
    return new Set(array);
}

该功能在开始时适用于许多型号.因为我想尽快处理删除,所以我想避免使用需要的解决方案.索引of.

但当我试图从一个大模型中删除时,例如,一个长度约为15000000的array.我在浏览器控制台上发现以下错误:

未捕获(promise 中)范围错误:超过设置最大大小

console error screenshot

我想知道,创建一个集合的最大大小是多少?

推荐答案

在规范中,包含集合中项目的集合称为"列表",列表的大小限制为not specified.

这些序列可以是任意长度的

集合列表的大小也没有特别指定.(1, 2)

  1. 设定设定.[[SetData]]到新的空列表.

因此,它必须由实现定义.

这取决于浏览器吗?还是在运行浏览器的电脑上?

它将取决于浏览器使用的JavaScript引擎(例如,V8、SpiderMonkey或JavaScriptCore等).

有办法得到那个号码吗?

只有.add个项目的一套,直到它抛出.

const getSetSizeLimit = () => {
  let i = 0;
  const set = new Set();
  while (true) {
    try {
      set.add(i);
    } catch(e) {
      return i;
    }
    i++;
  }
  return i;
};
console.log(getSetSizeLimit());

在我的Windows Chrome上,限制看起来是16777216,也就是2 ** 24.

Javascript相关问答推荐

在React中获取数据后,如何避免不必要的组件闪现1秒?

拖放仅通过 Select 上传

类型自定义lazy Promise. all

Angular 17—每当一个布尔变量变为真时触发循环轮询,只要它保持为真

setcallback是什么时候放到macrotask队列上的?

如何从隐藏/显示中删除其中一个点击?

当Redux提供程序访问Reduxstore 时,可以安全地从Redux提供程序外部调用钩子?

如何确保预订系统跨不同时区的日期时间处理一致?

Reaction-SWR-无更新组件

如果没有页面重新加载Angular ,innerHTML属性绑定不会更新

WebSocketException:远程方在未完成关闭握手的情况下关闭了WebSocket连接.&#三十九岁;

JavaScript:如果字符串不是A或B,则

如何使用画布在另一个内部绘制一个较小但相同的形状,同时保持恒定的边界厚度?

react -原生向量-图标笔划宽度

如何在Jest中模拟函数

将延迟加载的模块转换为Eager 加载的模块

调试jQuery代码以获取所有行的总和(票证类型)

使用JavaScript或PHP从div ID值创建锚标记和链接

使用JAVASCRIPT的偏移力矩函数库问题

如何使用逗号JS从数组中输出数据列表?