// 在數組arr中隨機獲取count數量的元素; const getRandomArrayElements = (arr, num) => { // 新建一個數組,將傳入的數組復制過來,用於運算,而不要直接操作傳入的數組; let temp_array = new Array(); for (let index in arr) { temp_array.push(arr[index]); } // 取出的數值項,保存在此數組 let return_array = new Array(); for (let i = 0; i < num; i++) { // 判斷如果數組還有可以取出的元素,以防下標越界 if (temp_array.length > 0) { // 在數組中產生一個隨機索引 let arrIndex = Math.floor(Math.random() * temp_array.length); // 將此隨機索引的對應的數組元素值復制出來 return_array[i] = temp_array[arrIndex]; // 然后刪掉此索引的數組元素,這時候temp_array變為新的數組 temp_array.splice(arrIndex, 1); } else { // 數組中數據項取完后,退出循環,比如數組本來只有10項,但要求取出20項. break; } } return return_array; };