2017-11-30 3 views
2

私はプログラミングとjavascriptについてかなり新しく、最近CodeWarsの課題に取り組んでいます。私は私の解決策で下の課題を渡すことができず、他のユーザーからの解決策と比較しても、私の問題が私のものであるかどうかはわかりませんでした。CodeWarsのjavascriptチャレンジ:私のソリューションに何が問題なのですか?

チャレンジ:

「それに渡された各番号それ正方形ようsquareSum/square_sum/SquareSum方法を完了した後、一緒に結果を合計例えば

: squareSum([1 、2、2]); // 9"

私のコードを返す必要があります。

function squareSum(numbers){ 
    var sqNum = numbers.map(num=>num*num); 
    var addNum = sqNum.reduce((acc,curr)=> acc + curr); 
    return addNum 
}; 
を10

何か不足していますか?

+0

このコードで何が問題になっていますか?エラーはありますか? – Weedoze

+0

私はそれをテストし、それは正常に動作します。あなたの結果は何ですか? – DSCH

+0

チャレンジに失敗する可能性は複数あります。コードが正しいように見えますが、フルコピーを実行すると、「大規模配列」のテストケースの時間要件に失敗する可能性があります。 reduceで直接square演算を実行してみてください。 – Ext3h

答えて

1

このソリューション自体は問題なく動作しています。私はcodepenで試しました。あなたの答えを提示する方法でなければなりません。コードワードの正確な動作はわかりませんが、関数squareSumはどこにも呼び出されていません。 それを行うときは、配列内の数値を渡すことを忘れないでください。

function squareSum(numbers){ 
    var sqNum = numbers.map(num=>num*num); 
    var addNum = sqNum.reduce((acc,curr)=> acc + curr); 
    console.log(addNum) 
}; 

squareSum([1, 2, 2]); 

これは

2
function squareSum(numbers){ 
    return numbers.reduce((acc,curr)=> acc + curr * cur, 0); 
} 

は、地図との完全なコピーを避けるだけで正常に動作します。大規模な配列を持つテストケースの実行時間またはメモリ制限のいずれかに当たる可能性が最も高くなります。

CodeWarsは正しい実装だけでなく、妥当な効率についても示しています。

+0

このチャレンジのためのテストはありませんでした。実際のテストケースは、チャレンジを完了した人が書き込むまで、テスト結果はデフォルトでエラーになりますか? – MemZen

関連する問題