我试图找到数组中正数、负数和零的分数,但该函数没有返回任何内容。
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]);Run Code Online (Sandbox Code Playgroud)
小智 8
这是一个简单而快速的解决方案:
可以使用filter函数迭代数组,仅获取满足条件的数字;正数 (n> 0)、负数 (n <0) 和中性数 (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))
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20517 次 |
| 最近记录: |