我想知道如何从数组中随机选择一个对象并减小valid
的值。
我有以下内容:
const codes = [
{
code: "AG1",
valid: 20
},
{
code: "AG2",
valid: 20
},
{
code: "AG3",
valid: 20
}
]
现在我像这样随机选择对象
var code = codes[Math.floor(Math.random()*codes.length)];
选择一个对象后,我需要将该对象的有效值减一。
有什么主意吗?
答案 0 :(得分:2)
您可以使用-递减
var codes = [{
code: "AG1",
valid: 20
},
{
code: "AG2",
valid: 20
},
{
code: "AG3",
valid: 20
}
]
var rand=Math.floor(Math.random() * codes.length);
console.log(codes[rand].valid!=0?--codes[rand].valid:codes[rand].valid);
答案 1 :(得分:0)
如果需要将更改保留在阵列上,则可以在随机获得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);