簡體   English   中英

嘗試查找數字是否為奇/偶/復合/質數

[英]Trying to find if numbers are odd/even/composite/prime

我有以下數字數組:

var array = [5,9,12,19,23,24,31,44,49,62];

而且我正在嘗試找出每個數字是偶數還是復合,奇數和復合或奇數和質數。 我首先嘗試找到偶數和合成的數字:

for (i = 0; i < array.length; i++) {
    if (array[i]%2 === 0 && array[i]%i === 0) {
        console.log(array[i]+" is even and composite")
    }
}   

問題是當我應該得到12,24,44,62時我只會得到12。 它似乎停止在12點。可能是什么問題?

謝謝。

您可以將每個問題作為一項功能來簡化。

例如:查找數組中的偶數

function isEven(n) {
   return (n % 2) === 0  //to get even numbers
}

function isOdd(n) {
   return (n % 2) === 1  //to get odd numbers
}

然后編寫另一個函數以檢查合成數字和素數。 如果我為您完成所有工作,那將不會很有趣。

function isComposite(n) {
   //Enter check for composite numbers here
}

function isPrime(n) {
   //Enter check for prime numbers here
}

然后要獲得數組中的偶數,您可以簡單地將filter方法用於通過預寫測試函數作為參數傳遞的數組,如果您不知道它是什么。 但基本上,它會檢查數組中的每個元素是否通過測試,然后從中創建另一個函數。

array.filter(isEven) // This would create a new array of all the even numbers in your array

您還可以鏈接函數調用以查找偶數和復合數。

array.filter(isEven).filter(isComposite)  //would give you all the even and composite numbers in your array

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM