处理内存错误使用nodejs时,什么都不应该那么大

确切的错误说:“致命错误:CALL_AND_RETRY_LAST分配失败 – 进程内存不足”程序应该在第n个位置获得素数,但不pipe数量有多less都会失败。 这个错误究竟意味着什么,我该如何解决?

var primes = [2, 3, 5]; var x = 0; var y = 0; var z = 6; var nthPrime = function(number){ while (primes.length <= number){ y = 0; while (y <= primes.length){ x = primes[y]; if (z % x === 0){ y++; } else{ primes.push(z); z++; } } } console.log(primes[number]); }; nthPrime(3); 

第二个while循环是一个无限循环。 在前两个迭代之后, else语句比if语句更频繁地发生。 这意味着primes数组的长度增加的速度比y值快。 再研究一下逻辑,这个特定的错误应该会自行解决。