Đã giải quyết: cách sắp xếp ngẫu nhiên một mảng javascript

Vấn đề chính với việc sắp xếp ngẫu nhiên một mảng là nó có thể rất tốn thời gian.

 arrays sorting random

I have an array of objects that I need to randomly sort.  The objects have a property called "order" that is a number.  I need to sort the array so that the order property is in random order, but the other properties of each object stay in place.  How can I do this?


A:

You can use <code>sort</code> with a function that returns a random value:


<code>const arr = [
  { id: 1, name: 'foo' },
  { id: 2, name: 'bar' },
];
arr.sort(() =&gt; Math.random() - 0.5);
console.log(arr);</code>



Mảng và hàm sắp xếp

Một mảng là một tập hợp dữ liệu có thể được truy cập bằng cách sử dụng một số chỉ mục. Phần tử đầu tiên trong mảng có chỉ số 0, phần tử thứ hai có chỉ số 1, v.v. Để truy cập phần tử thứ ba trong mảng, bạn sẽ sử dụng chỉ mục số 3.

Để sắp xếp một mảng, bạn có thể sử dụng chức năng sắp xếp. Hàm sắp xếp nhận hai đối số: một mảng và một hàm so sánh. Hàm so sánh so sánh hai phần tử trong mảng và trả về giá trị boolean. Nếu hàm so sánh trả về true thì phần tử ở vị trí x trong mảng sẽ được đặt trước phần tử ở vị trí y trong mảng. Nếu hàm so sánh trả về false, thì phần tử ở vị trí x trong mảng sẽ được đặt sau phần tử ở vị trí y trong mảng.

Dưới đây là một ví dụ về cách sử dụng hàm sắp xếp để sắp xếp một mảng số:

số var = [1, 2, 3, 4]; // Sắp xếp các số bằng hàm so sánh var sortedNumbers = numbers .sort(function(a, b) { return a – b; }); // In ra bảng điều khiển sortedNumbers .log(sortedNumbers);

Mảng ngẫu nhiên

Một mảng là một tập hợp dữ liệu có thể được truy cập bằng cách sử dụng một số chỉ mục. Trong JavaScript, các mảng được tạo bằng cách sử dụng Array constructor.

Để tạo một mảng trống, hãy sử dụng hàm tạo Array():

var myArray = Mảng mới();

Để tạo một mảng có năm phần tử, hãy sử dụng đoạn mã sau:

var myArray = Mảng mới(5);

myArray[0] = “JavaScript”; myArray[1] = “Mảng”; myArray[2] = “Hàm”; myArray[3] = “Chuỗi”; myArray[4] = “Booleans”; myArray[5] = “Số”;

bài viết liên quan:

Để lại một bình luận