我想從數組中刪除非素數,以下是僅刪除偶數而不是質數。試圖找到一個數組中的素數
function sumPrimes(num) {
//Produce an array containing all number of to and including num
let numArray = [];
for (let i = 1; i <= num; i++) {
numArray.push(i);
}
//Remove non-prime numbers from the array
numArray.map((number) => {
for (let i = 2; i < number; i++) {
if(number % i === 0) {
let index = numArray.indexOf(number);
return numArray.splice(index, 1);
}
}
});
return numArray;
}
sumPrimes(10);
這是目前返回:
[1, 2, 3, 5, 7, 9]
然而,素數是1,2,3,5,7(不包括9);
輸出對我來說是4,6,8,9,10,這是正確的。您已將其編程爲打印時發現可分號碼,而不是不可分割的號碼。 –
'map'不會刪除任何內容。你是不是指過濾器?不要在循環中使用'splice'。 – Bergi
你的回調將需要返回一些有意義的東西,而不是未定義的東西。 – Bergi