我想知道如何从数组中随机选择一个对象并减小valid的值。

我有以下几点:

const codes = [
   {
      code: "AG1",
      valid: 20
   },
   {
      code: "AG2",
      valid: 20
   },
   {
      code: "AG3",
      valid: 20
   }
]


现在我像这样随机选择对象

var code = codes[Math.floor(Math.random()*codes.length)];


选择对象后,需要将对象的有效值减一

任何想法?

最佳答案

如果需要将更改保留在阵列上,则可以在获得随机codes[idx].valid--之后使用index



const codes = [
   {code: "AG1", valid: 20},
   {code: "AG2", valid: 20},
   {code: "AG3", valid: 20}
];

const decRandom = (codes) =>
{
    let idx = Math.floor(Math.random() * codes.length);

    // Decrement only if greater then zero.
    codes[idx].valid > 0 && codes[idx].valid--;
}

let iteration = 0;

setInterval(() =>
{
    decRandom(codes);
    console.log("Iteration: " + ++iteration, JSON.stringify(codes));
}, 2000);

关于javascript - 从数组和减量值中选择随机对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54772869/

10-11 20:06