尋找解決這個問題的方法我試圖按照迄今爲止在SO上提出的幾個程序,但都沒有工作。從數組中獲得獨特的隨機項目
我想從選定數組中隨機選擇一個隨機數。爲了做到這一點,我已經寫了下面的函數,它總是返回重複的,而不是唯一項目:
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;
}
有誰知道爲什麼它不返回獨特的項目?
謝謝!
你的代碼做什麼都在那裏? – Mritunjay
您能解釋min,max和totalWeight參數的用途嗎?完全基於你提供的描述,他們似乎不是必要的。 (我沒有追蹤所有的代碼。) –