如何有效地隨機選擇數組項目而不重複
您的程式碼建立最近選擇的數組以防止重複,並調用遞歸函數當所選項目位於最近的選擇中時,命名為ChooseName()。這種方法確保了唯一性,但如果數組大小有限,可能會導致無限循環。
它是遞迴函數嗎?
是的,chooseName()呼叫本身找到一個獨特的選擇。遞歸使函數能夠迭代數組項,直到找到不在最近選擇中的項。
提高效率
要避免無限循環,請考慮另一種方法答案中建議:
function randomNoRepeats(array) {
var copy = array.slice(0);
return function() {
if (copy.length 此函數產生原始陣列的副本並從中隨機選擇一個項目。使用所有項目後,它會建立原始數組的新副本,即使數組已用完,也能確保唯一的選擇。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3