Bài viết này sẽ giới thiệu nhiều cách để tạo chuỗi ngẫu nhiên trong JavaScript. Mỗi phương pháp dưới đây sẽ có một ví dụ về mã mà bạn có thể chạy trên máy của mình
Sử dụng vòng lặp for
để tạo chuỗi ngẫu nhiên
Chúng tôi sử dụng phương pháp Math.random[]
để tạo số ngẫu nhiên trong khoảng từ 0 đến 1
Math.floor[Math.random[] * charactersLength]
sẽ tạo ra một số ngẫu nhiên trong khoảng từ 0 đến độ dài của mảng đã khai báo
Chúng tôi sử dụng vòng lặp for
để tạo độ dài cần thiết của chuỗi ngẫu nhiên. Một ký tự ngẫu nhiên được tạo trong mỗi lần lặp
Giả sử chúng ta có một mảng gọi là myShows chứa danh sách một số chương trình truyền hình nổi tiếng mà bạn có thể muốn xem
Đây là vấn đề. Với rất nhiều chương trình tuyệt vời, làm thế nào để bạn biết những gì bạn muốn xem tại bất kỳ thời điểm nào? . Tất cả bạn bè của bạn đều đưa ra những câu trả lời khác nhau. Cha mẹ của bạn thậm chí còn chưa nghe nói về những chương trình này, vì vậy họ không thể giúp bạn nhiều. Bác sĩ tâm thần của bạn đã ngừng trả lời các cuộc gọi của bạn. Bạn bế tắc
May mắn thay, bất cứ khi nào tôi rơi vào tình huống chỉ có một mình và phải đưa ra một lựa chọn khó khăn, tôi sẽ làm những gì tôi có thể làm tốt nhất. Tôi đặt tất cả các lựa chọn của mình vào một mảng và viết một số JavaScript để chọn ngẫu nhiên một lựa chọn - một lựa chọn mà tôi không nghi ngờ gì khi làm theo. Trong bài viết này, chúng ta sẽ học cách tự viết JavaScript này. Chúng ta sẽ học cách viết một số mã để chọn ngẫu nhiên một mục từ mảng chứa đầy các mục
trở đi
Chúa ơi. Một cuốn sách ma trận được viết bởi Kirupa?
Để nâng cao kỹ năng dàn trận của bạn, mọi thứ bạn cần để trở thành chuyên gia dàn trận đều có sẵn trong cuốn sách này
MUA TRÊN AMAZONMã để chọn một giá trị mảng ngẫu nhiên
Hãy nhảy ngay vào nó. Mã để chọn một giá trị ngẫu nhiên từ một mảng trông như sau
let randomValue = myArray[Math.floor[Math.random[] * myArray.length]];
Thay thế myArray bằng tên của biến thực sự lưu trữ mảng của bạn. Đó là nó. Để xem đây là một phần của ví dụ, trước tiên chúng ta cần một mảng
let myShows = ['Bones', 'Psych', 'Big Bang Theory', 'Mad Men',
'Breaking Bad', 'Modern Family', 'Game of Thrones', 'Dexter'];
Mảng của chúng ta được gọi là myShows, do đó, sử dụng mã mà chúng ta đã thấy trước đó, cách chúng ta chọn một giá trị ngẫu nhiên từ mảng này là thực hiện điều này
let show = myShows[Math.floor[Math.random[] * myShows.length]];
Nếu bạn chạy mã này, biến chương trình của chúng tôi sẽ lưu trữ tên của một chương trình được chọn ngẫu nhiên từ mảng myShows của bạn
Tất cả điều này hoạt động như thế nào
Kỹ thuật đằng sau việc làm cho một dòng mã của chúng tôi hoạt động chỉ cần một chút hiểu biết về mảng và cách làm việc với các số ngẫu nhiên. Chúng ta sẽ bắt đầu với góc số ngẫu nhiên trước. Công thức cơ bản để chọn một số ngẫu nhiên giữa một dãy số là
Math.floor[Math.random[] * [1 + High - Low]] + Low;
Tất cả những gì chúng ta cần là một số cao và một số thấp để xác định phạm vi số mà chúng ta muốn. Mã này sẽ ngẫu nhiên [và khá. ] chọn một số ngẫu nhiên giữa phạm vi của chúng tôi. Chi tiết về điều này được nêu trong hướng dẫn Số ngẫu nhiên, vì vậy hãy kiểm tra sau nếu bạn muốn tìm hiểu sâu hơn về thế giới số ngẫu nhiên
Số cao và số thấp trong trường hợp của chúng tôi là gì? . Số chỉ mục này bắt đầu từ 0 và tăng dần từng đơn vị cho đến khi chúng tôi chạm vào mục cuối cùng trong mảng của mình
Số thấp cho chúng tôi sẽ là 0. Điều này tương ứng với mục đầu tiên trong mảng của chúng tôi. Công thức ngay bây giờ sẽ như sau
Math.floor[Math.random[] * [1 + High]];
Số cao là mục cuối cùng trong mảng của chúng tôi. Vị trí chỉ mục của mục cuối cùng trong mảng của bạn có thể được tìm thấy bằng cách lấy độ dài của mảng của chúng tôi và trừ đi giá trị đó bằng 1
let lastItem = myArray.length - 1;
Nếu chúng ta thay thế myArray. chiều dài - 1 vào biến cao trong công thức của chúng tôi, đây là những gì chúng tôi sẽ nhận được
Math.floor[Math.random[] * [1 + myArray.length - 1]];
Số 1 sẽ bị hủy bỏ, để lại vị trí chỉ mục ngẫu nhiên của chúng tôi
Math.floor[Math.random[] * myArray.length];
Có được vị trí chỉ số đưa chúng ta đi gần hết chặng đường. Chúng tôi sẽ sử dụng vị trí chỉ mục này để truy xuất giá trị được liên kết với nó trong mảng của chúng tôi
________số 8_______Thay thế myArray bằng myShows để có cú pháp chính xác mà chúng ta đã thấy vài trăm pixel trước đó
Phần kết luận
Vì vậy, có bạn có nó. Chỉ cần kết hợp kiến thức về mảng và số ngẫu nhiên, chúng ta có thể tạo một dòng mã chọn ngẫu nhiên một giá trị từ một mảng. Trong trường hợp bạn đang thắc mắc, đây là những gì kịch bản bảo tôi xem