gpt4 book ai didi

javascript - 为什么这段代码在重复运行时在 JSBin 中运行不同?

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

在 JSBin 上,此代码每次运行时都会返回不同的数字,但它不会作为 Stack Snippet:

function prime(num) {
var primes = [];
var i = 1;

while (primes.length <= num) {
if (isPrime(i)) {
primes.push(i);
}
i++;
}

function isPrime(i) {
for (var k = 2; k <= Math.sqrt(i); k++) {
if (i % k === 0) {
return false;
}
}
return true;
}

return primes.pop();

}

console.log(prime(10001));

Link to JSbin .如果在 JSBin 上重复运行,控制台会显示什么:

enter image description here

最佳答案

如果您查看 Chrome 控制台,您会看到以下警告。这就是循环在某个阶段随机断开的原因。

Exiting potential infinite loop at line 6. To disable loop protection: add "// noprotect" to your code

如果您如下所示在代码顶部添加行 //noprotect 并在 JSBin 中运行它,它始终会给出正确的答案。

// noprotect
function prime(num) {
var primes = [];
var i = 1;

while (primes.length <= num) {
if (isPrime(i)) {
primes.push(i);
}
i++;
}

.....

关于javascript - 为什么这段代码在重复运行时在 JSBin 中运行不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40058268/

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