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 và
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ó đượ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.
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.