Làm cách nào để xáo trộn các mục trong JavaScript?

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ỉ số. = 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; . tầng [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

Phương thức chấp nhận một hàm so sánh và thực hiện sắp xếp dựa trên giá trị được trả về bởi hàm đó

Hàm so sánh được thực thi trên mọi phần tử trong mảng của bạn. Thông thường, hai phần tử của mảng được truyền làm đối số cho hàm như thế này

numbers.sort[function [a, b] {
  return Math.random[] - 0.5;
}];

Nhưng vì bạn không sử dụng các phần tử trong thân hàm nên bạn có thể bỏ qua các đối số

Quy tắc của phương thức

numbers.sort[function [a, b] {
  return Math.random[] - 0.5;
}];
0 là khi hàm so sánh trả về
numbers.sort[function [a, b] {
  return Math.random[] - 0.5;
}];
1 thì phần tử
numbers.sort[function [a, b] {
  return Math.random[] - 0.5;
}];
0 được đặt trước
numbers.sort[function [a, b] {
  return Math.random[] - 0.5;
}];
1

Khi hàm trả về giá trị

numbers.sort[function [a, b] {
  return Math.random[] - 0.5;
}];
2 thì
numbers.sort[function [a, b] {
  return Math.random[] - 0.5;
}];
0 được đặt sau
numbers.sort[function [a, b] {
  return Math.random[] - 0.5;
}];
1

Xem xét các ví dụ sau

// Example 1: a after b
let pair = [17, 99]; // a, b

console.log[pair.sort[[] => -1]];
// [99, 17] // b, a

// Example 2: a before b
let anotherPair = [27, 5]; // a, b

console.log[anotherPair.sort[[] => 1]];
// [27, 5] // a, b

Phương thức

numbers.sort[function [a, b] {
  return Math.random[] - 0.5;
}];
5 trả về một số ngẫu nhiên trong khoảng từ
numbers.sort[function [a, b] {
  return Math.random[] - 0.5;
}];
6 đến
numbers.sort[function [a, b] {
  return Math.random[] - 0.5;
}];
7

Khi bạn trả về

numbers.sort[function [a, b] {
  return Math.random[] - 0.5;
}];
8 từ phương thức
numbers.sort[function [a, b] {
  return Math.random[] - 0.5;
}];
0, điều đó có nghĩa là phương thức sẽ trả về một số ngẫu nhiên trong khoảng từ
// Example 1: a after b
let pair = [17, 99]; // a, b

console.log[pair.sort[[] => -1]];
// [99, 17] // b, a

// Example 2: a before b
let anotherPair = [27, 5]; // a, b

console.log[anotherPair.sort[[] => 1]];
// [27, 5] // a, b
0 đến
// Example 1: a after b
let pair = [17, 99]; // a, b

console.log[pair.sort[[] => -1]];
// [99, 17] // b, a

// Example 2: a before b
let anotherPair = [27, 5]; // a, b

console.log[anotherPair.sort[[] => 1]];
// [27, 5] // a, b
1

Điều này làm cho phương thức

numbers.sort[function [a, b] {
  return Math.random[] - 0.5;
}];
0 thực hiện sắp xếp ngẫu nhiên, xáo trộn các phần tử trong mảng của bạn mà không có bất kỳ mẫu rõ ràng nào

Và đó là cách bạn có thể xáo trộn một mảng bằng JavaScript

Bạn có thể rút ngắn hàm thành một lớp lót bằng cú pháp hàm mũi tên như sau

numbers.sort[function [a, b] {
  return Math.random[] - 0.5;
}];
3

Phương thức

numbers.sort[function [a, b] {
  return Math.random[] - 0.5;
}];
0 ở trên sắp xếp lại mảng một cách ngẫu nhiên mỗi khi bạn chạy mã

Bạn cũng có thể viết một hàm JavaScript có tên là

// Example 1: a after b
let pair = [17, 99]; // a, b

console.log[pair.sort[[] => -1]];
// [99, 17] // b, a

// Example 2: a before b
let anotherPair = [27, 5]; // a, b

console.log[anotherPair.sort[[] => 1]];
// [27, 5] // a, b
4 bằng cách sử dụng phương thức
numbers.sort[function [a, b] {
  return Math.random[] - 0.5;
}];
0 như sau

numbers.sort[function [a, b] {
  return Math.random[] - 0.5;
}];
5

Hàm

// Example 1: a after b
let pair = [17, 99]; // a, b

console.log[pair.sort[[] => -1]];
// [99, 17] // b, a

// Example 2: a before b
let anotherPair = [27, 5]; // a, b

console.log[anotherPair.sort[[] => 1]];
// [27, 5] // a, b
6 chấp nhận một
// Example 1: a after b
let pair = [17, 99]; // a, b

console.log[pair.sort[[] => -1]];
// [99, 17] // b, a

// Example 2: a before b
let anotherPair = [27, 5]; // a, b

console.log[anotherPair.sort[[] => 1]];
// [27, 5] // a, b
7 làm đối số của nó và trả về một mảng đã xáo trộn từ
// Example 1: a after b
let pair = [17, 99]; // a, b

console.log[pair.sort[[] => -1]];
// [99, 17] // b, a

// Example 2: a before b
let anotherPair = [27, 5]; // a, b

console.log[anotherPair.sort[[] => 1]];
// [27, 5] // a, b
7 đã cho

Xin lưu ý rằng phương thức

numbers.sort[function [a, b] {
  return Math.random[] - 0.5;
}];
0 sửa đổi mảng ban đầu

Nếu bạn muốn giữ lại mảng ban đầu, thì bạn cần sử dụng toán tử trải rộng [

numbers.sort[function [a, b] {
  return Math.random[] - 0.5;
}];
30] để tạo một bản sao nông của mảng

Làm cách nào để xáo trộn các giá trị trong JavaScript?

Cách đầu tiên và đơn giản nhất để xáo trộn một mảng trong JavaScript là cung cấp một hàm tùy chỉnh cho một. sắp xếp[] . mảng const = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; . sắp xếp [[a, b] => 0. 5 - Toá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ị.

Làm cách nào để xáo trộn các phần tử trong một mảng JavaScript?

Các phần tử mảng JavaScript có thể được xáo trộn bằng cách sử dụng phương thức sort[] . Phương thức Array sort[] của JavaScript được sử dụng để sắp xếp các phần tử của một mảng. Phương thức chấp nhận một hàm so sánh và thực hiện sắp xếp dựa trên giá trị được trả về bởi hàm đó.

Làm cách nào để xáo trộn một chuỗi trong js?

Làm cách nào để trộn văn bản trong Javascript? .
Sợi dây. nguyên mẫu. xáo trộn = hàm [] {
var a = cái này. tách ra[""],
n = một. chiều dài;
for[var i = n – 1; i > 0; i–] {
var j = Toán học. tầng [Toán. ngẫu nhiên[] * [i + 1]];
var tmp = a[i];
a[i] = a[j];

Chủ Đề