如何在 JavaScript 中使用百分位数公式计算给定数组中小于/等于给定值的数字个数?


本文将介绍如何使用百分位数公式计算给定数组中小于/等于给定值的数字个数。我们使用以下公式计算给定数组中小于或等于该数字的百分比:

Percentile = (n/N) * 100 

其中,n 是小于 x 的值的个数,N 是值的总数。

示例 1

在本例中,我们使用 for 循环迭代数组,并检查每个元素的值是否小于、等于或大于给定的输入值。

const calculationPercentile = (inputArray, val) => {
   let resultValue = 0;   
   for (let i in inputArray) {
      resultValue = resultValue + (inputArray[i] < val ? 1 : 0) +
      (inputArray[i] === val ? 0.5 : 0);
   }   
   let displayResult = (resultValue / inputArray.length) * 100;
   console.log("
The percentile value is ") console.log(displayResult); }; const inputArray = [3,4,5,6,7,8] console.log("The array is defined as :", inputArray) // calling the function calculationPercentile calculationPercentile(inputArray, 6);

解释

  • 步骤 1 − 定义一个数字数组和一个输入值。

  • 步骤 2 − 定义一个名为 'calculationPercentile' 的函数,该函数接收一个数组和一个值作为输入。

  • 步骤 3 − 在函数中,定义一个变量 'resultValue',用于保存数组中小于 inputValue 的数字的个数。

  • 步骤 4 − 最后应用百分位数公式:(resultValue / inputArray.length) * 100 并显示结果。

示例 2

在本例中,我们使用 reduce() 方法遍历数字数组并将其转换为单个实体。

const calculationPercentile = (inputArray, inputValue) =>
(100 *
inputArray.reduce(
   (tempValue, v) => tempValue + (v < inputValue ? 1 : 0) +
   (v === inputValue ? 0.5 : 0),
   0
)) /
inputArray.length;
const inputArray = [3,4,5,6,7,8]
console.log("The array is defined as :", inputArray)
   
let inputValue = 6
console.log("The array is defined as :", inputValue)
   
console.log("
The percentile value is ") console.log(calculationPercentile(inputArray, inputValue))

解释

  • 步骤 1 − 定义一个数字数组和一个输入值。

  • 步骤 2 − 定义一个名为 'calculationPercentile' 的函数,该函数接收一个数组和一个值作为输入。

  • 步骤 3 − 在函数中,使用 reduce() 方法获取数组中小于输入值的值,将该数字除以数组长度,再乘以 100。

  • 步骤 4 − 调用函数并显示结果。

更新于: 2023年2月16日

128 次浏览

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告