In-depth understanding of JS array sorting: the principle and mechanism of the sort() method requires specific code examples
Introduction: Array sorting is in our daily front-end development work One of the very common operations. The array sorting method sort()
in JavaScript is one of our most commonly used array sorting methods. However, do you really understand the principles and mechanisms of the sort()
method? This article will give you an in-depth understanding of the principles and mechanisms of JS array sorting, and provide specific code examples.
1. Basic usage of sort()
method
First, let’s understand the basic usage of sort()
method. The sort()
method can sort the array in place, which means that it does not create a new array, but directly modifies the original array.
sort()
The method will convert the elements of the array into strings by default and sort them in ascending order according to Unicode positions.
For example, we have an array containing numeric types:
let arr = [8, 3, 6, 2, 9, 1]; arr.sort(); console.log(arr); // [1, 2, 3, 6, 8, 9]
As can be seen from the above example, the sort()
method will convert the elements in the array into a string and sorted. However, this default string sorting does not apply to numeric array sorting. Next, we will explore how to implement forward and reverse ordering for numeric types.
2. Sorting using comparison functions
sort()
The method can accept a comparison function as a parameter, which is used to define sorting rules. The comparison function accepts two parameters, representing the two elements to be compared.
Now, let’s take a look at how to use comparison functions to achieve forward and reverse order.
Order in positive order
let arr = [8, 3, 6, 2, 9, 1]; arr.sort((a, b) => a - b); console.log(arr); // [1, 2, 3, 6, 8, 9]
In the above code, we use the comparison function(a, b) => a - b
to achieve positive order. If the return value of the comparison function a - b
is less than 0, it means placing a
in front of b
to achieve ascending order.
Arrange in reverse order
let arr = [8, 3, 6, 2, 9, 1]; arr.sort((a, b) => b - a); console.log(arr); // [9, 8, 6, 3, 2, 1]
In the above code, we use the comparison function(a, b) => b - a
to achieve reverse order. If the return value of the comparison function b - a
is less than 0, it means placing b
in front of a
to achieve descending order.
3. Customized sorting rules
In addition to sorting in forward and reverse order, we can also customize the sorting rules according to our own needs.
For example, if we want to arrange a string array according to the string length, we can achieve it like this:
let arr = ['a', 'abcd', 'ab', 'abc']; arr.sort((a, b) => a.length - b.length); console.log(arr); // ['a', 'ab', 'abc', 'abcd']
In the above code, we use the comparison function (a, b) => a.length - b.length
to sort in ascending order by string length.
4. Sorting of complex objects
If we want to sort an array containing complex objects, we need to specify the basis for sorting in the comparison function.
For example, we have an array containing student data. Each student object has two attributes: name
and score
. We want to sort students according to their scores, which can be achieved like this:
let students = [ { name: 'Alice', score: 90 }, { name: 'Bob', score: 80 }, { name: 'Charlie', score: 70 } ]; students.sort((a, b) => b.score - a.score); console.log(students); // [{ name: 'Alice', score: 90 }, { name: 'Bob', score: 80 }, { name: 'Charlie', score: 70 }]
In the above code, we use the comparison function (a, b) => b.score - a.score
To sort students in descending order by their scores.
Conclusion
Through this article's in-depth understanding of the principles and mechanisms of the sort()
method, we know how to use comparison functions to implement forward order, reverse order, and customization Sorting rules, and learned to sort in complex arrays of objects. I hope the content of this article can help you and improve your understanding and use of JavaScript array sorting.
The above is the detailed content of JS array sorting: in-depth analysis of the working principle and mechanism of the sort() method. For more information, please follow other related articles on the PHP Chinese website!