gpt4 book ai didi

JavaScript OOM 错误

转载 作者:行者123 更新时间:2023-11-30 11:20:16 26 4
gpt4 key购买 nike

这里是 JS 的新手,所以如果我遗漏了一些明显的东西,我深表歉意。尝试构建一个随机数生成器(它以嵌套方式工作,所以有点像随机数元组列表),但我收到此代码的 OOM 错误。 (比如,如果我尝试做类似 generateList(6) 的事情)

function generateList(num){
var arr = [];
for(i=0;i<num;i++){
arr.push(generateTuple());
}
return arr;
}

function generateTuple(){
var tuple = [];

for(i=0;i<3;i++){
tuple.push(Math.floor(Math.random() * 300));
}
return '(' + tuple[0] + ',' + tuple[1] + ',' + tuple[2] + ')';
}

OTOH,如果我只是单独生成随机数并返回它们(而不是使用列表),它可以正常工作。谁能告诉我这是怎么回事?

function generateTuple(){
var a = Math.floor(Math.random() * 300);
var b = Math.floor(Math.random() * 300);
var c = Math.floor(Math.random() * 300);


return '(' + a + ',' + b + ',' + c + ')';
}

编辑:所以基本上,如果您运行代码,它会陷入某个循环,并且在控制台中运行一段时间后,它会返回 OOM 错误。所以我假设这是内存溢出或某处发生的事情。

最佳答案

你通过不使用 var 或 let 声明它来创建全局 i,然后循环使用它。这为 i 创造了前所未有的值(value),导致循环永远不会完成。正确声明变量。

for(var i=0;i<num;i++) // better: let i = 0; ...

for(var i=0;i<3;i++) // better: let i = 0; ...

关于JavaScript OOM 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50085248/

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