Javascript 返回给定正数、负数和零数数组的百分比数组

Javascript 返回给定正数、负数和零数数组的百分比数组,javascript,arrays,Javascript,Arrays,我需要一些帮助来解决一个需要以下内容的问题: 我们需要一个函数FractionOf,它接收一个数组并返回另一个带有以下三个数字的数组: in the first position, the fraction of numbers that are positive in the second position, the fraction of numbers that are zero in the last position, the fraction of numbers that a

我需要一些帮助来解决一个需要以下内容的问题:

我们需要一个函数FractionOf,它接收一个数组并返回另一个带有以下三个数字的数组:

 in the first position, the fraction of numbers that are positive
 in the second position, the fraction of numbers that are zero
 in the last position, the fraction of numbers that are negative
例如,FractionOf([1,2,0,-1])应该返回[0.5,0.25,0.25],假设有50%的正、25%的零和25%的负

所以我试着给他们问我的问题提供一些形式,但我被困在如何将百分比转换成分数并将其添加到位置上

var nums=[1,2,0,0,-1,-4]
function FractionOf(nums){
  var result=[]
  var num1=0
  var num2=0
  var num3=0
  for(var i=0; i<nums.length; i++){
    var num=nums[i]
    if(num>0){
      num1= num1 + 0.25}
    if (num==0){
      num2=num2 + 0.25}
    if(num<0){
     num3=num3 + 0.25}
result.push(num1)
result.push(num2)
result.push(num3)
return result
}
var nums=[1,2,0,0,-1,-4]
函数分形(nums){
var结果=[]
var num1=0
var num2=0
var num3=0
对于(var i=0;i0){
num1=num1+0.25}
如果(num==0){
num2=num2+0.25}
if(num
此解决方案用于统计这三种情况中每种情况的出现次数,从填充0的数组开始。结果通过管道传输到函数,该函数将每个值除以输入的长度
num
,以获得0-1之间的百分比


此解决方案用于统计这三种情况中每种情况的出现次数,从填充0的数组开始。结果通过管道传输到函数,该函数将每个值除以输入的长度
num
,以获得从0到1的百分比。

要以百分比形式获得结果,应计算集合w的分数公式如下:

( total_numbers_from_a_subset / total_numbers ) * 100.
尝试:

var nums=[1,2,0,0,-1,-4]
function FractionOf(nums){
  var result=[]
  var num1=0
  var num2=0
  var num3=0
  for(var i=0; i<nums.length; i++){
    var num=nums[i]
    if(num>0){
      num1++; //how many numbers in the set are < 0
    }
    if (num==0){
      num2++
    }
    if(num<0){
     num3++
    }
}
result.push(num1 / nums.length * 100)
result.push(num2 / nums.length * 100)
result.push(num3 / nums.length * 100)
return result
var nums=[1,2,0,0,-1,-4]
函数分形(nums){
var结果=[]
var num1=0
var num2=0
var num3=0
对于(var i=0;i0){
num1++;//集合中有多少个数字<0
}
如果(num==0){
num2++
}

如果(num要获得百分比结果,应使用以下公式计算集合的分数:

( total_numbers_from_a_subset / total_numbers ) * 100.
尝试:

var nums=[1,2,0,0,-1,-4]
function FractionOf(nums){
  var result=[]
  var num1=0
  var num2=0
  var num3=0
  for(var i=0; i<nums.length; i++){
    var num=nums[i]
    if(num>0){
      num1++; //how many numbers in the set are < 0
    }
    if (num==0){
      num2++
    }
    if(num<0){
     num3++
    }
}
result.push(num1 / nums.length * 100)
result.push(num2 / nums.length * 100)
result.push(num3 / nums.length * 100)
return result
var nums=[1,2,0,0,-1,-4]
函数分形(nums){
var结果=[]
var num1=0
var num2=0
var num3=0
对于(var i=0;i0){
num1++;//集合中有多少个数字<0
}
如果(num==0){
num2++
}

如果(num您可以使用此

var nums=[6,5,0,-5,-3]
        function FractionOf(nums){
            var result = [];
            var positive = 0;
            var zero = 0;
            var negative = 0;
            for(var i = 0; i < nums.length; i++){
                if(nums[i] > 0){
                    positive++;
                }
                if (nums[i] == 0){
                    zero++;
                }
                if(nums[i] < 0){
                    negative++;
                }
            }
            result.push(positive / nums.length * 100);
            result.push(zero / nums.length * 100);
            result.push(negative / nums.length * 100);
            return result;
        }
var nums=[6,5,0,-5,-3]
函数分形(nums){
var结果=[];
var正=0;
var 0=0;
var负值=0;
对于(变量i=0;i0){
正++;
}
如果(nums[i]==0){
零++;
}
if(nums[i]<0){
负++;
}
}
结果推送(正/微米长度*100);
结果推送(零/微米长度*100);
结果。推送(负/nums.length*100);
返回结果;
}

希望这有助于……

您可以通过此

var nums=[6,5,0,-5,-3]
        function FractionOf(nums){
            var result = [];
            var positive = 0;
            var zero = 0;
            var negative = 0;
            for(var i = 0; i < nums.length; i++){
                if(nums[i] > 0){
                    positive++;
                }
                if (nums[i] == 0){
                    zero++;
                }
                if(nums[i] < 0){
                    negative++;
                }
            }
            result.push(positive / nums.length * 100);
            result.push(zero / nums.length * 100);
            result.push(negative / nums.length * 100);
            return result;
        }
var nums=[6,5,0,-5,-3]
函数分形(nums){
var结果=[];
var正=0;
var 0=0;
var负值=0;
对于(变量i=0;i0){
正++;
}
如果(nums[i]==0){
零++;
}
if(nums[i]<0){
负++;
}
}
结果推送(正/微米长度*100);
结果推送(零/微米长度*100);
结果。推送(负/nums.length*100);
返回结果;
}

希望这有帮助…

您可以通过返回每个通缉检查的总和并映射其中的部分来减少数组

函数分形(nums){
返回nums
.减少(([p,m,n],v)=>p+(v>0),m+(v<0),n+(v==0)],[0,0,0])
.map(v=>v/nums.length);
}
log(fractionsOf([1,2,0,-1]);

log(fractionsOf([1,2,0,0,0,-1,-4]);
您可以通过返回每个想要检查的总和并映射部分来减少数组

函数分形(nums){
返回nums
.减少(([p,m,n],v)=>p+(v>0),m+(v<0),n+(v==0)],[0,0,0])
.map(v=>v/nums.length);
}
log(fractionsOf([1,2,0,-1]);

console.log(fractionsOf([1,2,0,0,-1,-4]);
返回结果应在外循环此
返回结果应在外循环