CodeWars上的javascript挑战:我的解决方案出了什么问题?

时间:2017-11-30 07:52:22

标签: javascript arrow-functions

我是编程和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
};

我错过了什么吗?

3 个答案:

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