javascript - 基于百分比的值概率

标签 javascript php

有没有办法根据百分比提取值?

取值概率:
差:1%
正常:29%
好:70%

var move ["bad","normal","good"];

一个简单的条件语句:

if (move == "bad") {
bad_move = "That's a bad move!";
} else if (move == "normal") {
normal_move = "Classic move!";
} else {
good_move = "Amazing move!";
}

那么对于这种问题,PHP 比 Javascript 好吗?

最佳答案

您可以编写一个函数,以给定的概率百分比对值进行采样:

function weightedSample(pairs) {
  const n = Math.random() * 100;
  const match = pairs.find(({value, probability}) => n <= probability);
  return match ? match.value : last(pairs).value;
}

function last(array) {
  return array[array.length - 1];
}

const result = weightedSample([
  {value: 'Bad', probability: 1},
  {value: 'Normal', probability: 29},
  {value: 'Good', probability: 70}
]);

console.log(result);

我不能说 PHP 是否会更好。这种问题在 PHP 中不应该更难/更难。您应该使用哪种(JS 或 PHP)实际上取决于函数是应该在服务器还是客户端上运行。

关于javascript - 基于百分比的值概率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43190674/

相关文章:

javascript - 如何使用Python获取未出现在HTML中,但出现在Chrome的 "Inspect Element"工具中的元素?

javascript - 如何创建缩放时缩放的 Canvas 边界限制? ( Fabric .js)

php - 跨域$.ajax setRequestHeader

php - MySQL 选择分组依据 显示最新帖子

php - 查询 DROP mysql 动态触发

JavaScript,在动态添加的元素上启用查询选择器

javascript - 设置值时日期发生变化

JavaScript addClass 不适用于 PHP GET ['page']

javascript - jquery自动完成不显示数组的值

javascript - 如何使用Ramda.js在Javascript中动态插入2d数组