Tạo chuỗi ngẫu nhiên trong javascript
Mình đã từng chia sẻ về đoạn mã lấy chuỗi ngẫu nhiên với ngôn ngữ PHP. Vậy còn JavaScript thì sao? Không sao cả, nó đây: Show
Đơn giản vậy thôi. Để sử dụng bạn chỉ cần gọi hàm generate_string(). Nếu muốn bao nhiêu ký tự thì truyền tham biến vào. Chúc các bạn thành công. Huỳnh Mai Anh Kiệt - Advertisement - Có thể bạn đã biết hoặc chưa biết về các cách tạo số ngẫu nhiên trong JavaScript. Tuy nhiên, bài viết này mình sẽ tổng hợp lại một số biến thể của việc tạo số ngẫu nhiên với phương thức Math.random(), cũng như các ứng dụng của chúng trong lập trình JavaScript. Trước khi bắt đầu, mình cùng điểm qua một số phương thức tạo số ngẫu nhiên trong JavaScript. Theo mình biết, JavaScript có hai phương thức tạo số ngẫu nhiên là: Math.random() và window.crypto.getRandomValues(). Trong đó, phương thức Math.random() đơn giản và thường hay được sử dụng. Tuy nhiên, phương thức này không an toàn. Vì vậy, nó không được sử dụng trong những bài toán mà số random liên quan đến bảo mật. Thay vào đó, bạn có thể sử dụng phương thức window.crypto.getRandomValues().
Ngoài hai phương án trên, bạn cũng có thể sử dụng thư viện bên thứ 3 như: random-js hoặc tự implement riêng một phương thức random theo cách của bạn. Tuy nhiên, trong phạm vi bài viết này, mình sẽ lựa chọn phương thức cơ bản và phổ biến nhất để giới thiệu với bạn. Đó là Math.random(). Cơ bản về phương thức Math.random()Phương thức Math.random() trả về số thực trong khoảng lớn hơn hoặc bằng 0 và nhỏ hơn 1. Ví dụ:
Như bạn thấy, kết quả bên trên đều là những số thực ngẫu nhiên lớn hơn hoặc bằng 0 và nhỏ hơn 1. Nhưng nếu mình muốn tạo số ngẫu nhiên lớn hơn 1 thì sao? Các biến thể tạo số ngẫu nhiên trong JavaScriptTạo số ngẫu nhiên giữa 2 giá trịĐể tạo số ngẫu nhiên giữa 2 giá trị min và max, bạn có thể tùy biến phương thức Math.random() như sau:
Ví dụ tạo số ngẫu nhiên từ 5 đến 20:
Kết quả in ra là hoàn toàn đúng như yêu cầu. Tuy nhiên, nếu mình lại muốn tạo ra các số nguyên ngẫu nhiên thì sao? Tạo số nguyên ngẫu nhiên giữa 2 giá trịĐể tạo số nguyên ngẫu nhiên giữa 2 giá trị, bạn có thể sử dụng kết hợp với phương thức Math.floor() như sau với điều kiện min và max cũng là 2 số nguyên:
Ví dụ tạo số nguyên ngẫu nhiên từ 5 đến 20:
Chú ý: Vì phương thức Math.random() trả về số ngẫu nhiên lớn hơn hoặc bằng 0 và nhỏ hơn 1. Nên phương thức getRandomInt() sẽ trả về số nguyên ngẫu nhiên lớn hơn hoặc bằng min và nhỏ hơn max. Để kết quả có thể nhỏ hơn hoặc bằng max, bạn có thể tùy chỉnh như sau:
Chú ý: Kết quả chạy của bạn có thể khác với mình và không xuất hiện số 20. Tuy nhiên, đó cũng là điều bình thường. Vì đây là tạo số ngẫu nhiên mà phải không bạn? Như vậy là mình đã giới thiệu với bạn một số biến thể của việc tạo số ngẫu nhiên trong JavaScript rồi. Tiếp theo, mình sẽ cùng tìm hiểu về một số ứng dụng của việc tạo số ngẫu nhiên trong JavaScript nhé. Một số ứng dụng tạo số ngẫu nhiên trong JavaScriptTạo ngẫu nhiên mã màu RGBMã màu RGB có dạng như sau: Trong đó, giá trị của rValue, gValue và bValue sẽ lớn hơn hoặc bằng 0 và nhỏ hơn hoặc bằng 255. Vì vậy, mình sẽ sử dụng phương thức getRandomIntInclusive() bên trên như sau:
Tạo ngẫu nhiên mã màu HEXMã màu HEX có dạng: Trong đó, thành phần RR, GG và BB bên trên lần lượt là giá trị của rValue, gValue và bValue ở hệ hexa (thập lục phân hay cơ số 16). Bạn có thể áp dụng chiến thuật trên bằng cách tạo ngẫu nhiên các giá trị R, G và B bình thường, sau đó format lại chúng thành dạng Hexa như sau:
Dưới đây là một ví dụ trực quan về việc tạo ngẫu nhiên mã màu: Tạo chuỗi string ngẫu nhiênTừ nãy giờ, mình mới chỉ tạo số ngẫu nhiên trong JavaScript. Tuy nhiên, nếu mình muốn tạo chuỗi string ngẫu nhiên thì sao? Đơn giản lắm! Dưới đây là thuật toán của mình. Giả sử mình muốn tạo chuỗi string ngẫu nhiên độ dài L với các ký tự thuộc tập hợp cho trước. Khi đó, các bước làm sẽ như sau:
Cách triển khai:
Ví dụ tạo chuỗi string ngẫu nhiên với độ dài 6 với các ký tự từ 0 đến 9, từ a đến z và từ A đến Z:
Với cách làm trên, mình có thể áp dụng vào bài toán tạo ngẫu nhiên mã màu HEX bằng cách định nghĩa lại base string là các ký tự từ 0 đến 9 và từ a đến f (hoặc từ A đến F):
Lời kếtTrên đây là một số cách tạo số ngẫu nhiên trong JavaScript và ứng dụng của chúng. Qua bài viết này, bạn đã biết cách:
Bạn có thường sử dụng những cách tạo số ngẫu nhiên trên không? Ngoài những cái mình đã đề cập bên trên, bạn còn biết ứng dụng nào khác nữa? Nếu câu trả lời là CÓ thì đừng ngần ngại chia sẻ với mình và mọi người nhé! Xin chào và hẹn gặp lại bạn trong bài viết tiếp theo, thân ái! ★ Nếu bạn thấy bài viết này hay thì hãy theo dõi mình trên Facebook để nhận được thông báo khi có bài viết mới nhất nhé: |