【发布时间】:2019-12-03 03:13:42
【问题描述】:
我正在尝试使用一个函数从对象数组中拉出一个对象,该函数根据我预设的一些规则随机化选择的对象(每个对象都有一个从 0 到 1 的上限和下限,控制其“机会”被选中。
我想多次运行这个函数并将每个单独调用的结果存储在一个新数组中。
下面是我写的代码。它生成规定数量的不同对象,但是我尝试构建这些对象的数组的部分只是将多个相同的调用推入数组,因此我最终得到一个充满我随机拉出的相同对象的数组。
const animals = [
{
upperProb: 1,
lowerProb: 0.8,
Animal: 'Zebra'
},
{
upperProb: 0.8,
lowerProb: 0.25,
Animal: 'Cat'
},
{
upperProb: 0.25,
lowerProb: 0,
Animal: 'Narwhal'
},
];
const generatedAnimal = {};
let animalChoice = () => {
const numGen = Math.random();
console.log(numGen);
const selectedAnimal = animals.find(animal =>
animal.upperProb > numGen
&& animal.lowerProb <= numGen
);
generatedAnimal.Animal = selectedAnimal.Animal;
return generatedAnimal;
};
console.log(generatedAnimal);
const generateDist = () => {
let animalDist = [];
let i = 0;
do {
animalChoice();
animalDist.push(generatedAnimal);
console.log(generatedAnimal);
i++
} while (i < 10)
console.log(animalDist);
}
generateDist();
【问题讨论】:
标签: javascript arrays object