簡體   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