這可能有一個簡單的解決方案,但由於某種原因,我似乎無法在網站或網絡上的其他地方找到它。試圖從數組中產生一個隨機長度的句子。這裏有一個例子:如何從數組中隨機化句子長度
3210這裏是我目前使用隨機化數組的內容的代碼,但它總是產生,每一個字符串使用一次的句子。我想要不同的句子長度。
function fisherYates(words) {
var i = words.length, j, tempi, tempj;
if (i == 0) return false;
while (--i) {
j = Math.floor(Math.random() * (i + 1));
tempi = words[i];
tempj = words[j];
words[i] = tempj;
words[j] = tempi;
}
return words;
}
建議?
Fisher Yates是一種混洗算法。它不會改變輸入數組的長度。 –
是的,我知道。這就是爲什麼我說我用它來隨機化數組的內容。我正在尋找一段代碼來跟隨它,這將產生一個隨機長度的句子。 – Tom
他使用**我**爲** words.length **,所以,你會抓住一切。您需要將** i **設置爲您想要的最小單詞與最大單詞之間的隨機數。 – klauskpm