美文网首页
[7kyu]Sum of Odd Cubed Numbers

[7kyu]Sum of Odd Cubed Numbers

作者: 君肄塵 | 来源:发表于2017-07-04 00:51 被阅读16次

    该算法题来自于 codewars【语言: javascript】,翻译如有误差,敬请谅解~

    • 任务
      • 查找并返回数组中奇数的立方和。只要其中某一个值不是数字,此函数将返回undefined(在PHP中为NULL)。
    • 例如:
      cubeOdd([1, 2, 3, 4]),返回 28。
      cubeOdd([-3,-2,2,3]),返回 0。
      cubeOdd(["a",12,9,"z",42]),返回 undefined。

    • 解答
    • 其一
    const cubeOdd = arr => {
          const array = arr.filter(el=>typeof el != 'number');
          let sum = 0;
          array.length ? sum = undefined : arr.filter(el=>el%2).forEach(el => {sum += Math.pow(el,3)});
          return sum;
    }
    
    • 其二
    function cubeOdd(arr) {
          var sum = 0;
          for (var i = 0; i <arr.length; i++){
            var cubed = (arr[i]*arr[i]*arr[i]);
            if (isNaN(cubed)) return undefined;
            if(cubed % 2 != 0 )sum += cubed;
          }
          return sum;
    }
    
    • 其三
    const cubeOdd = arr => arr.some(x=> +x !== x) ? undefined : arr.filter(x=>x%2!=0).reduce((s,x)=>s+x**3,0);
    
    • 其四
    const undefiner = v => isNaN(v) ? undefined : v;
    const cubeOdd = arr => undefiner(arr.reduce((s, v) => s + v*v%2*v*v*v, 0));
    
    • 其五
    const cubeOdd=a=>a.filter(x=>typeof x != "number").length?undefined:a.filter(x=>x%2).map(x=>Math.pow(x,3)).reduce((a,b)=>a+b,0)
    

    相关文章

      网友评论

          本文标题:[7kyu]Sum of Odd Cubed Numbers

          本文链接:https://www.haomeiwen.com/subject/qfhthxtx.html