[英]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.