2017-10-17 9 views
-3

コードワーキングを行う - 数をとる関数を書くように頼み、3と5のすべての倍数を抽出して一緒に加算します。したがって、10を渡すと、結果は3,5,6,9の合計になります。多項式関数の和6Kyuコードワード

が、これは私のコードであり、私はそれが働いてイマイチ理由を知らない:

function solution(number){ 
for (var i=0; i>=number; i++){ 
    if(i%3===0 || i%5===0){ 
    var arr = []; 
    var full = arr.push[i]; 
    var sum= full.reduce(function(a,b){return a+b},0); 
    console.log (sum); 
    } 
} 
} 
+0

'ので、10がどのように来る3,5,6,9'の合計でしょうか?入力されるすべての数字は3/5の倍数です。出力は23です。^^ –

+0

は3または5の倍数ではありませんか?それは3,5,6,9、そして10の合計ではないでしょうか? – gurvinder372

答えて

0

複数の問題を

あなたのコードに - ループの条件の方が大きいのではなく、より少なくより等しいチェックする必要があります-than-equal

-sumは最初に初期化し、条件を満たす場合はiを追加する必要があります。

DEMO

function solution(number) 
 
{ 
 
    var sum = 0; 
 
    for (var i=0; i<=number; i++) 
 
    { 
 
     if(i%3===0 || i%5===0) 
 
     { 
 
      sum += i; 
 
     } 
 
    } 
 
    return sum; 
 
} 
 
console.log(solution(10));

あなた本当にのみ配列を反復処理する場合は、最初の配列を入力する必要があります。

DEMO

function solution(number) 
 
{ 
 
    var sum = 0; 
 
    var arr = Array(number).fill().map((e , i) => i+1); 
 
    arr.forEach(function(item){ 
 
     if(item%3===0 || item%5===0) 
 
     { 
 
      sum += item; 
 
     } 
 
    }); 
 
    return sum; 
 
} 
 
console.log(solution(10));

+0

これは万事です。私はそれをやろうとしていました - (どこにすべての値を配列に入れてから、配列のすべての数値を足してみようとしたところ) - それは可能でしょうか? (それをする最善の方法ではないにしても)? –

+0

@ E.Moon最初に1から10までの配列を塗りつぶしてからそれを繰り返す必要があります。 – gurvinder372

+0

@ E.Moonは更新されたバージョンを試します。 – gurvinder372