从给定数组生成的素数数组(JavaScript)

时间:2017-11-07 00:37:08

标签: javascript arrays primes

我试图获取一个给定的数组并迭代它以创建一个新数组,其中只包含给定数组中的素数。

我不确定的是这样做的语法 - 我知道这是诅咒和错误,但我不确定如何解决它?或者,如果我以正确的方式解决它。

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;
}

2 个答案:

答案 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);