JavaScript中数组的正,负和零贡献

假设我们有一个整数数组(正,负和零),如下所示:

const arr = [23, -1, 0, 11, 18];

我们需要编写一个JavaScript函数,该函数接受一个这样的数组作为第一个和唯一的参数。然后,该函数应找到所有三个不同组的分数比率,即正数,负数和零。

例如-

对于上述数组,其长度为5,该数组的输出应为-

const output = [.2, .2, .6];

输出数组将始终包含3个数字,分别代表负整数,零整数和正整数的分数比率。验证我们答案的一种粗略方法是将这三个值相加并检查它们是否接近1,如果相近,则很可能已正确解决了问题。

示例

为此的代码将是-

const arr = [23, -1, 0, 11, 18];
const findRatio = (arr = []) => {
   const { length } = arr;
   const res = [0, 0, 0];
   for(let i = 0; i < arr.length; i++){
      const el = arr[i];
      const key = el / Math.abs(el || 1);
      res[key + 1]++;
   };
   return res.map(el => el / length);
};
console.log(findRatio(arr));
输出结果

控制台中的输出将是-

[0.2, 0.2, 0.6]