gpt4 book ai didi

javascript - 从 items[] 数组中选择九个已打乱顺序且不重复的项目

转载 作者:行者123 更新时间:2023-12-03 01:06:32 32 4
gpt4 key购买 nike

我正在尝试从数组 item[] 中选择一个九个数字项目,该项目已打乱且没有重复项。

但我的代码选择了超过九个,并且有重复

我如何将其更改为只有九个,没有重复并且

怎么可能

我必须做出什么改变才能使其成为可能?

window.onload = rnumber();
function rnumber() {
const
items = [
{ label: '1', url: '1.jpg' },
{ label: '2', url: '2.jpg' },
{ label: '3', url: '3.jpg' },
{ label: '4', url: '4.jpg' },
{ label: '5', url: '5.jpg' },
{ label: '6', url: '6.jpg' },
{ label: '7', url: '7.jpg' },
{ label: '8', url: '8.jpg' },
{ label: '9', url: '9.jpg' },
{ label: '10',url: '10.jpg' }
];


var lastnumber=0;
for (let index = 0; index < 9; index++)
{
randomIndex = Math.floor(Math.random() * items.length);

if(lastnumber!=randomIndex)
{
item = items[randomIndex];
lastnumber=randomIndex;

console.log(item);
}
else
{
rnumber();
}

}

}

最佳答案

您需要选择不替换的项目。您可以在选择项目时从 items 数组中删除随机选择的项目:

window.onload = rnumber();

function rnumber() {
const items = [
{ label: '1', url: '1.jpg' },
{ label: '2', url: '2.jpg' },
{ label: '3', url: '3.jpg' },
{ label: '4', url: '4.jpg' },
{ label: '5', url: '5.jpg' },
{ label: '6', url: '6.jpg' },
{ label: '7', url: '7.jpg' },
{ label: '8', url: '8.jpg' },
{ label: '9', url: '9.jpg' },
{ label: '10',url: '10.jpg' }
];

const randItems = Array.from(
{ length: 9 },
() => {
const randomIndex = Math.floor(Math.random() * items.length);
const [item] = items.splice(randomIndex, 1);
return item;
}
);
console.log(randItems);
}

请注意,这将改变原始items数组。如果您想保留它(就像一副可以稍后重复使用的牌),请先将其切片以进行复制,然后对切片副本进行变异;

const slicedItems = items.slice();
// ...
const randomIndex = Math.floor(Math.random() * slicedItems.length);
const [item] = slicedItems.splice(randomIndex, 1);

关于javascript - 从 items[] 数组中选择九个已打乱顺序且不重复的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52380397/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com