let gifts = [
{
"name":"mac",
"prop":1
},
{
"name":"红米",
"prop":10
},
{
"name":"u盘",
"prop":40
},
{
"name":"香皂",
"prop":49
}
];
function getResult(arr){
var leng = 0;
for(var i=0; i<arr.length; i++){
leng+=arr[i] //获取总数
}
for(var i=0; i<arr.length; i++){
var random = parseInt(Math.random()*leng); //获取 0-总数 之间的一个随随机整数
if(random<arr[i]){
return i //如果在当前的概率范围内,得到的就是当前概率
} else {
leng-=arr[i] //否则减去当前的概率范围,进入下一轮循环
}
}
}
let gArr = [];
for(var i=0; i<gifts.length; i++){
gArr.push(gifts[i]['prop'])
}
console.log(gifts[getResult(gArr)]['name'])