Trong JavaScript, phương thức shuffle[] dùng để hoán đổi vị trí các phần tử trong mảng. Hiện tượng sắp vị trí ngẫu nhiên làm xáo trộn các phần tử của mảng. Phương thức không chỉnh sửa giá trị của phần tử. Nó trả về một mảng mới theo thứ tự chưa sắp xếp bằng cách sử dụng mảng. phương thức sắp xếp[]. Ở đây, bạn đã học cách xáo trộn một mảng bằng JavaScript. Để hiểu rõ hơn, chúng tôi cũng đã giải thích hoạt động của phương thức shuffle[]
Trái ngược với các ngôn ngữ như Ruby và PHP, JavaScript không có phương thức tích hợp sẵn để xáo trộn mảng. Tuy nhiên, có một phương pháp cho phép xáo trộn trình tự. Hãy thảo luận về một trường hợp cụ thể
Ví dụ, chúng ta có mảng sau
chức năng ngẫu nhiên hóa [giá trị] { hãy để chỉ mục = giá trị. chiều dài, chỉ số ngẫu nhiên; . trong khi [chỉ mục. = 0] { // Chọn phần tử còn lại. Random Index = Toán học. tầng [Toán. ngẫu nhiên [] * chỉ mục]; . [giá trị[chỉ số], giá trị[chỉ số ngẫu nhiên]] = [ giá trị[chỉ số ngẫu nhiên], giá trị[chỉ số]]; . nhật ký [mảng];
Xáo trộn một mảng các giá trị được coi là một trong những vấn đề lâu đời nhất trong khoa học máy tính. Có thể xáo trộn với thuật toán xáo trộn để tạo một hoán vị ngẫu nhiên của một chuỗi hữu hạn. Điều đó có nghĩa là, thuật toán xáo trộn trình tự
Richard Durstenfeld giới thiệu phiên bản hiện đại của Fisher-Yates shuffle được thiết kế để sử dụng máy tính
hàm shuffleArray[mảng] { let curId = mảng. chiều dài; . == curId] { // Chọn phần tử còn lại let randId = Math. tầng [Toán. ngẫu nhiên [] * curId]; . hãy để tmp = mảng [curId]; . nhật ký [mảng];
Trường hợp code bằng ES6/ECMAScript 2015 cho phép gán 2 biến ngay lập tức thì code sẽ ngắn hơn
hàm shuffleArray[arr] { for [hãy i = mảng. chiều dài - 1; . sàn[Toán. ngẫu nhiên[] * [i + 1]]; . nhật ký [mảng];
hàm shuffleArray [mảng] { mảng. sắp xếp [[] => Toán học. ngẫu nhiên[] - 0. 5]; . nhật ký [mảng]
Lớp mảng JavaScript được sử dụng để xây dựng các mảng, là các đối tượng cấp cao và giống như danh sách. Mảng có thể được sử dụng để lưu trữ một số giá trị trong một biến duy nhất. Một mảng có thể được mô tả như một biến duy nhất có khả năng chứa nhiều hơn một giá trị cùng một lúc
Mỗi mục có một số gắn liền với nó được gọi là chỉ mục số cho phép bạn truy cập nó. Mảng JavaScript bắt đầu từ chỉ số 0 và được thao tác bằng các phương thức khác nhau
Để xáo trộn một mảng đúng cách trong JavaScript, hãy sử dụng thuật toán xáo trộn Fisher-Yates. Thuật toán lặp qua từng phần tử trong mảng và hoán đổi nó với một phần tử ngẫu nhiên trong mảng như hình bên dưới
Để làm điều đó theo hướng ngược lại, hãy làm như sau
Hướng dẫn cơ bản khác
Psssst. TRẠI BOOTC PHÁT TRIỂN WEB 2023 sẽ bắt đầu chỉ sau vài ngày nữa. Tham gia danh sách chờ, giữ chỗ trong khóa học thuần tập kéo dài 10 tuần của tôi và tìm hiểu các nguyên tắc cơ bản, HTML, CSS, JS, Tailwind, React, Next. jsvà hơn thế nữa. ✨
Xáo trộn một mảng hoặc một danh sách có nghĩa là chúng ta sắp xếp lại nội dung của cấu trúc đó một cách ngẫu nhiên. Để xáo trộn một mảng, chúng tôi sẽ sử dụng các thuật toán sau
thuật toán 1.
jav
function
shuffleArray[array] {
for
[
var
i = array.length - 1; i > 0; i--] {
// Generate random number
var
shuffleArray[array] {
2
shuffleArray[array] {
3
var
shuffleArray[array] {
6
shuffleArray[array] {
8
0
2
3
5
6
2
Thí dụ.
html
8
9for
0for
1
9for
3for
1
for
5
9for
7for
8for
7for
1
[
1for
3for
1
9[
5for
1
for
5
9[
9____50______49for
1
for
5
for
5
9var
6 var
7var
8var
9for
1
i = array.length - 1; i > 0; i--] {
1i = array.length - 1; i > 0; i--] {
2
for
5[
1____56for
1
for
5
for
5
9
0for
1
i = array.length - 1; i > 0; i--] {
1
3
i = array.length - 1; i > 0; i--] {
1
5
6
7
8// Generate random number
8
1
8
3
8shuffleArray[array] {
8
8
0
6
2
6// Generate random number
1
i = array.length - 1; i > 0; i--] {
1
2
i = array.length - 1; i > 0; i--] {
1// Generate random number
5
i = array.length - 1; i > 0; i--] {
1// Generate random number
7
6// Generate random number
9
6shuffleArray[array] {
01
6shuffleArray[array] {
03
i = array.length - 1; i > 0; i--] {
1
2
for
5[
1____70for
1
[
1[
5for
1
[
1for
0for
1
đầu ra.
- Trước khi nhấp vào nút.
- Sau khi nhấp vào nút.
Thuật toán 2
Truyền một hàm trả về [giá trị ngẫu nhiên – 0. 5 ] làm bộ so sánh với chức năng sắp xếp, để sắp xếp các phần tử trên cơ sở ngẫu nhiên.