黑客排名:正负

新手上路,请多包涵

我试图在数组中找到正数、负数和零的分数,但该函数没有返回任何内容。

 var noOfPostive = 0;
var noOfNegative = 0;
var noOfZero = 0;

function plusMinus(arr) {
  /*
   * Write your code here.

   */
  var length = arr.length;

  for (var i = 0; i < arr.length; i++) {
    if (i > 0) {
      noOfPostive += 1;
    } else if (i < 0) {
      noOfNegative += 1;
    } else {
      noOfZero += 1;
    }

    var FractionOfPostive = noOfPostive / length;
    var FractionOfNegative = noOfNegative / length;
    var FractionOfZero = noOfZero / length;
    return FractionOfPostive, FractionOfPostive, FractionOfZero;

  }
}

plusMinus([-4,3,-9,0,4,1]);

原文由 Mostafa Jaafer Ulobeed 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 134
1 个回答

这是一个简单快速的解决方案:

您可以使用过滤函数在数组中进行迭代,并得到一个只有满足条件的数字的新数组;正数 (n> 0)、负数 (n ) 和中性数 (n == 0)。在同一个变量中,您可以计算返回数组的大小并将其除以原始数组的大小,从而得到分数,您必须使用 toFixed(6) 将其格式化为仅小数点后 6 位,并在要求的格式。

 function plusMinus(arr) {
    let positive = arr.filter(number => number > 0).length / arr.length;
    let negative = arr.filter(number => number < 0).length / arr.length;;
    let zeronums = arr.filter(number => number == 0).length / arr.length;;
    return console.log(positive.toFixed(6) + '\n' + negative.toFixed(6) + '\n' + zeronums.toFixed(6))
}

原文由 Coveo 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题