gpt4 book ai didi

javascript - 从数组中获取唯一的随机项

转载 作者:行者123 更新时间:2023-12-02 15:43:06 25 4
gpt4 key购买 nike

为了寻找这个问题的解决方案,我尝试遵循迄今为止建议的几个程序,但都不起作用。

我想从选定的数组中选择随机数量的随机唯一项目。为了做到这一点,我编写了以下函数,它始终返回重复项而不是唯一项:

function getRandomItemsCombination(min, max, sourceArray){
var items = {};
//var itemsCount = Math.floor(Math.random() * (max - min + 1)) + min;
var itemsCount = random.integer(min, max);
//var randomItem = getRandomArrayElement(sourceArray);
var randomItem;
var arrIntegers = []
while(arrIntegers.length < itemsCount){
var randomnumber=Math.ceil(Math.random()*(sourceArray.length - 1))
var found=false;
for(var i=0;i<arrIntegers.length;i++){
if(arrIntegers[i]==randomnumber){found=true;break}
}
if(!found)arrIntegers[arrIntegers.length]=randomnumber;
}

items.items = [];
var randomItemsIndex = {};
items.quantities = [];
var existing = false;

for(var i = 0; i < itemsCount; i++){
randomItem = sourceArray[arrIntegers[i]];
var index = randomItemsIndex[randomItem.Long_desc];
if(index == undefined){
index = items.items.length;
randomItemsIndex[randomItem.Long_desc] = index;
existing = false;
}
else {
existing = true;
}
items.items[index] = randomItem;
existing = false;
}
return items;
}

有谁知道为什么它不返回唯一的项目?

谢谢!

最佳答案

您可以使用 underscorejs sample 函数

_.sample(list, [n])

Produce a random sample from the list. Pass a number to return n random elements from the list. Otherwise a single random item will be returned.

_.sample([1, 2, 3, 4, 5, 6]);
=> 4

_.sample([1, 2, 3, 4, 5, 6], 3);
=> [1, 6, 2]

http://underscorejs.org/#sample

关于javascript - 从数组中获取唯一的随机项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32431105/

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