javascript – 基于百分比的价值概率

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

价值概率:
差: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)实际上取决于该功能是否应该在服务器或客户端上运行.

点赞