我试图获取一个给定的数组并迭代它以创建一个新数组,其中只包含给定数组中的素数。
我不确定的是这样做的语法 - 我知道这是诅咒和错误,但我不确定如何解决它?或者,如果我以正确的方式解决它。
var myArray = isPrime([1,5,17,25,30])
console.log(myArray)
function isPrime(array){
var primes = [];
for(var i = 0; i < array.length; i++){
if(array[i] /= 1 || array[i] / 1 == array[i]){
primes.push([i]);
}
}
return primes;
}
答案 0 :(得分:0)
一种简单的方法是创建一个isElementPrime(number)
函数,告诉该数字是否为素数(找到implementation here),然后遍历它!
function isPrime(array){
var primes = [];
for(var i = 0; i < array.length; i++){
if(isElementPrime(array[i]){
primes.push(array[i]);
}
}
return primes;
}
答案 1 :(得分:0)
我们的想法是将数字除以小于它的每个数字并大于1,看看是否有余数。
使用filter
可以将其应用于数组中的所有元素;
参见示例:
function isPrime(element) {
for(var i = 2; i < element; i++) {
if(element % i === 0) {
return false;
}
}
return element !== 1;
}
var array = [1, 5, 17, 25, 30];
var primes = array.filter(isPrime);
console.log("array: " + array);
console.log("primes: " + primes);