【发布时间】:2017-06-14 00:40:30
【问题描述】:
我想从数组中删除非素数,以下仅删除偶数而不是素数。
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不会删除任何内容。你的意思是filter?不要在循环中使用splice。 -
您的回调需要
return一些有意义的东西,而不是undefined。
标签: javascript