Computer >> Máy Tính >  >> Lập trình >> Javascript

JavaScript - Làm cách nào để chọn các phần tử ngẫu nhiên từ một mảng?

Giả sử, chúng ta có một mảng các ký tự không chứa các phần tử trùng lặp như thế này -

const arr = [2, 5, 4, 45, 32, 46, 78, 87, 98, 56, 23, 12];

Chúng tôi được yêu cầu viết một hàm JavaScript nhận vào một mảng các ký tự duy nhất và một số n.

Hàm sẽ trả về một mảng gồm n phần tử được chọn ngẫu nhiên từ mảng đầu vào và không phần tử nào xuất hiện nhiều hơn một lần trong mảng đầu ra.

Ví dụ

Sau đây là mã -

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));

Đầu ra

Điều này sẽ tạo ra kết quả sau trong bảng điều khiển -

[ 5, 2, 4, 78 ]