HomeLập trìnhJavaScriptCách tạo số...

Cách tạo số ngẫu nhiên trong phạm vi nhất định trong JavaScript


Giả sử bạn muốn tạo một số ngẫu nhiên trong khoảng từ 10 đến 15 – bạn làm điều đó như thế nào trong JavaScript? Tôi sẽ chỉ cho bạn cách thực hiện với các ví dụ trong bài viết này.

Trong JavaScript, có random phương pháp của Math đối tượng trả về số ngẫu nhiên. Nhưng điều này có một giới hạn phạm vi. Vì vậy, hãy xem làm thế nào chúng ta có thể tận dụng phương pháp này để giải quyết các phạm vi khác nhau.

Tôi đã tạo một phiên bản video của bài viết này mà bạn có thể sử dụng để bổ sung cho việc học của mình tại đây.

Cách sử dụng Math.random trong JavaScript

Các random phương thức trả về một số thực ngẫu nhiên giữa 1. Đây là một ví dụ về mã:

Math.random()
// 0.26636355538480383

Math.random()
// 0.6272624945940997

Math.random()
// 0.05992852707853347

Từ kết quả, bạn có thể thấy ba số ngẫu nhiên trong khoảng từ 0 đến 1. Bây giờ, hãy giải các phạm vi khác.

Cách lấy số ngẫu nhiên trong một phạm vi trong JavaScript

Chúng tôi sẽ có một chức năng mà chúng tôi có thể sử dụng cho các phạm vi khác nhau:

function getRandom(min, max) {
  // code here
}

Chức năng này nhận min (tham số thấp nhất của phạm vi) và max (tham số cao nhất của phạm vi) đối số. Bây giờ hãy sử dụng phạm vi này và Math.random để có được một số ngẫu nhiên:

function getRandom(min, max) {
  const floatRandom = Math.random()

  const difference = max - min

  // random between 0 and the difference
  const random = Math.round(difference * floatRandom)

  const randomWithinRange = random + min

  return randomWithinRange
}

Đây là những gì đang xảy ra trong chức năng:

  • đầu tiên, chúng tôi nhận được một số nổi ngẫu nhiên bằng cách sử dụng Math.random()
  • tiếp theo, chúng tôi tìm thấy sự khác biệt giữa phạm vi cao nhất và thấp nhất
  • tiếp theo, chúng tôi đánh giá một số ngẫu nhiên giữa 0 và sự khác biệt giữa các phạm vi
Đọc thêm  Ví dụ JavaScript String.Replace() với RegEx

Để có được số ngẫu nhiên này, chúng tôi nhân sự khác biệt với số ngẫu nhiên mà chúng tôi nhận được từ Math.random và chúng tôi áp dụng Math.round vào kết quả để làm tròn số đến số nguyên gần nhất.

Vì vậy, nếu, ví dụ, Math.random lợi nhuận 0,3 và sự khác biệt giữa các phạm vi là 5nhân chúng với nhau sẽ cho 1,5. Sau đó sử dụng Math.round làm cho nó 2 nằm trong khoảng từ 0 đến 5 (sự khác biệt).

Một ví dụ khác: nếu Math.random lợi nhuận 0,9 và sự khác biệt giữa các phạm vi được chỉ định là số 8nhân chúng với nhau sẽ cho 7.2. Sau đó sử dụng Math.round làm cho nó 7 nằm trong khoảng từ 0 đến 8 (sự khác biệt).

Bây giờ chúng ta có một số ngẫu nhiên giữa 0 và hiệu, chúng ta có thể thêm số ngẫu nhiên đó vào phạm vi tối thiểu. Làm điều này cho chúng ta một kết quả nằm trong phạm vi tối thiểu và tối đa.

Chúng tôi gán kết quả này cho randomWithinRange và trả lại nó từ chức năng. Bây giờ hãy xem chức năng được sử dụng:

console.log(getRandom(10, 15))
// 14

console.log(getRandom(10, 15))
// 11

console.log(getRandom(10, 15))
// 12

console.log(getRandom(10, 15))
// 15

Ở đây, chúng tôi sử dụng một min của 10 và một max của 15. Bốn lần chúng tôi gọi hàm với các đối số này, bạn có thể thấy kết quả là các số ngẫu nhiên trong phạm vi được cung cấp.

Hãy xem một ví dụ khác về chức năng được sử dụng:

console.log(getRandom(180, 450))
// 215

console.log(getRandom(180, 450))
// 386

console.log(getRandom(180, 450))
// 333

console.log(getRandom(180, 450))
// 442

Ở đây, chúng tôi sử dụng một min của 180 và một max của 450. Một lần nữa, bạn có thể thấy kết quả của số ngẫu nhiên từ chức năng của chúng tôi.

Đọc thêm  Ví dụ đối sánh Regex JavaScript – Cách sử dụng JS Thay thế trên chuỗi

kết thúc

Nếu bạn cần tạo một số ngẫu nhiên trong một phạm vi cụ thể, tôi hy vọng bài viết này đã chỉ cho bạn cách thực hiện.

Trong bài viết này, tôi đã giải thích giới hạn phạm vi của Math.random trả về một số ngẫu nhiên trong khoảng từ 0 đến 1. Và tôi cũng đã chỉ cho bạn cách tận dụng phương pháp toán học này để tạo một hàm có thể tái sử dụng để tạo các số ngẫu nhiên trong bất kỳ phạm vi nào bạn chọn.

Vui lòng chia sẻ bài viết này nếu bạn thấy nó hữu ích.



Zik.vn – Biên dịch & Biên soạn Lại

spot_img

Create a website from scratch

Just drag and drop elements in a page to get started with Newspaper Theme.

Buy Now ⟶

Bài viết liên quang

DMCA.com Protection Status