JavaScript - 如何從陣列中選擇隨機元素?
假設我們有一個不包含重複元素的字面陣列,如下所示 −
const arr = [2, 5, 4, 45, 32, 46, 78, 87, 98, 56, 23, 12];
我們需要編寫一個輸入為唯一字面值的陣列和數字 n 的 JavaScript 函式。
該函式應返回一個包含 n 個隨機選取自輸入陣列中元素的陣列,並且輸出陣列中不應出現重複的元素。
示例
以下為程式碼 −
const arr = [2, 5, 4, 45, 32, 46, 78, 87, 98, 56, 23, 12]; const chooseRandom = (arr, num = 1) => { const res = []; for(let i = 0; i < num; ){ const random = Math.floor(Math.random() * arr.length); if(res.indexOf(arr[random]) !== -1){ continue; }; res.push(arr[random]); i++; }; return res; }; console.log(chooseRandom(arr, 4));
輸出
將在控制檯中產生以下輸出 −
[ 5, 2, 4, 78 ]
廣告