Làm thế nào để bạn xáo trộn một mảng trong javascript?

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

Javascript xáo trộn một mảng

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

Javascript xáo trộn một mảng

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

Javascript xáo trộn một mảng

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];

Javascript xáo trộn một 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

   9for0for1

 

   9for3for1

for5   9for7for8for7for1

[1for3for1

 

   9[5for1

for5

 

   9[9____50______49for1

 

 

for5

for5   9var6 var7var8var9for1

i = array.length - 1; i > 0; i--] {1i = array.length - 1; i > 0; i--] {2

for5[1____56for1

for5

for5   9  0for1

 

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 number1

i = array.length - 1; i > 0; i--] {1   2

 

i = array.length - 1; i > 0; i--] {1// Generate random number5

i = array.length - 1; i > 0; i--] {1// Generate random number7

  6// Generate random number9

  6shuffleArray[array] {01

 

  6shuffleArray[array] {03

i = array.length - 1; i > 0; i--] {1   2

for5[1____70for1

[1[5for1

 

[1for0for1

đầ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.  

Có cách nào để xáo trộn một mảng?

Xáo mảng sử dụng lớp ngẫu nhiên . Sau đó, chúng tôi sử dụng lớp Random để tạo số chỉ mục ngẫu nhiên. Sau đó trao đổi phần tử chỉ mục hiện tại với phần tử chỉ mục được tạo ngẫu nhiên. Khi kết thúc vòng lặp for, chúng ta sẽ có một mảng được xáo trộn ngẫu nhiên.

Có phương pháp xáo trộn nào trong JavaScript không?

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ể. hãy để chỉ mục = giá trị.

Chủ Đề