2017-11-07 30 views
0

私は与えられた配列を取り、その配列から素数である数字だけを含む新しい配列を作成しようとしています。与えられた配列(JavaScript)から生成された素数の配列

私がよく分からないことは、これを行うための構文です。これは途方もなく間違っていることがわかりますが、どうやって修正するのか分かりません。それとも私はそれについて正しい方向に行っている場合。

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

数が素数であるかどうか、それは伝え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; 
} 
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);

+0

を参照してください、それは私がそれを行うことが容易になるだろう考え出した方法ですが、教授は、配列自体を取る関数を望んでいるので、どうやらそれは正しくないのですそのパラメータ。 "isPrimeという関数は、数値の配列をとり、素数である数字を含む配列を返します。例えば、isPrime([1、5、17、25、30]) [1、5、17]を返すべきです。 " 私は1が技術的にプライムではないことを知っていますが、私は正直なところ、Ricardoがこれまで述べてきたことをせずにこれをどのように処理するかについては、単純な関数のイントロの深みを超えているようです。 – BetaRay

+0

@BetaRay私が提供した答えは正しいです。あなたの宿題には、特定の形式の回答が必要です。 'isPrime'という関数を作成するのは非常に簡単なはずです。この関数は、ここで私が答えたところで配列を入力として受け取ります。試してみてください。 –