我是编程和javascript的新手,最近开始致力于CodeWars挑战。我无法通过我的解决方案传递下面的挑战,即使我与其他用户的解决方案进行比较,我也找不到与我的问题。
挑战:
“完成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
};
我错过了什么吗?
答案 0 :(得分:2)
function squareSum(numbers){
return numbers.reduce((acc,curr)=> acc + curr * cur, 0);
}
避免使用地图的完整副本。对于具有大型阵列的测试用例,您很可能会达到运行时或内存限制。
CodeWars不仅关于正确的实施,还关于合理的效率。
答案 1 :(得分: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 :(得分:0)
This is my solution the code wars challenge...Was well
function square_sum(numbers) {
return numbers.reduce(function(sum, x) {
return (x * x) + sum;
}, 0)
}