繁体   English   中英

Javascript:如何将X元素添加到数组

[英]Javascript : How can I add X elements to an array

我需要创建一个包含前100个质数的数组,这是我的代码:

var premier= [];
var nombre= premier.length;

function isPrime(n)
{
    if(n < 2)
    {
        return false;
    }

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

while(nombre<100)
{
    var j=2
    if(isPrime(j)==true)
    {
        premier.push(j);
    }
    j=j+1
}

我在Javascript初学者,但我已经测试isPrime功能,并能正常工作,甚至forlarge号码。

但是当我运行程序时,我有:

严重错误:JS分配失败-内存不足

我认为这部分是错误的:

while(nombre<100)
{
    var j=2
    if(isPrime(j)=true)
    {
        premier.push(j);
    }
    j=j+1
}
console.log(premier)

但我不知道为什么

您每次循环运行都会重复设置j=2 ,并且您永远不会更改nombre因此循环永远不会结束。 请注意,JavaScript通过值而不是通过引用设置文字变量,因此nombre = premier.length不会神奇地更新。

此外, if( x = true)形式的语句会将x 设置为true,然后自动传递条件。 在这种情况下,由于x是函数调用,因此它是无效的语法。

你是这个意思吗

var j = 2;
while(premier.length < 100) {
    if( isPrime(j)) premier.push(j);
    j++;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM