Native reordering method of javascript array
(1) Function
Reverse Position of elements in the array (change the original array)
(2) Syntax
arr.reverse() //没有参数
(3) Example
let myArray = [ 'one', 'two', 'three' ]; myArray.reverse(); console.log(myArray); // ["three", "two", "one"]
(4) Return value
Original array’s Reference, the array will not be newly generated
let myArray = [ 'one', 'two', 'three' ]; let result = myArray.reverse(); result[2] = 2; console.log(myArray); //["three", "two", 2] console.log(result); //["three", "two", 2]
(5) Disadvantages
Not very flexible, the array can only be reversed
(1) Function
Sort() will sort the elements of the array at the appropriate position (the original array will change)
(2) Syntax
arr.sort(); arr.sort(compareFunction);
(3) Parameters
Optional. Used to formulate a function that sorts in a certain order.
If you omit parameters, for example, call it like this.
arr.sort() //没有添加参数
The sort() function will apply the following parameters, so the default comparison is the Unicode code
//关于sort 的可选参数 //如果没有设置参数,v8 中会自动生成一个参数 if (!IS_CALLABLE(comparefn)) { //这是默认的参数值 comparefn = function (x, y) { if (x === y) return 0; if (%_IsSmi(x) && %_IsSmi(y)) { return %SmiLexicographicCompare(x, y); } //在这里 会把参数全都转换为 Unicode 在进行比较 x = TO_STRING(x); y = TO_STRING(y); if (x == y) return 0; else return x < y ? -1 : 1; }; }
(4) Principle
1. Set the parameters first, enter them yourself or use the default values
2. If the number of elements is less than 2, return directly
3. Determine whether the current object is an array. If the object is not an array, the value on the prototype chain will be copied to the current Array, sort
var arry = [1,2,3,4,2,5]; var a = {}; a.proto = arry; a.sort() // Array {0: 1, 1: 2, 2: 2, 3: 3, 4: 4, 5: 4}
4. Sort all undefined values in the array at the end,
5. Sort all values in the array that are not undefind
6. When When the number of elements in the array is less than or equal to 10, use InsertionSort to sort
//comparefn 是sort 的参数 //参数可以自己传入 ,或者使用v8 默认的值 function InsertionSort(a, from, to) { for (var i = from + 1; i < to; i++) { var element = a[i]; for (var j = i - 1; j >= from; j--) { var tmp = a[j]; var order = comparefn(tmp, element); if (order > 0) { a[j + 1] = tmp; } else { break; } } a[j + 1] = element; } };
7. When the number of elements in the array is greater than 10, use quick sort
The above is the detailed content of Learn more about javascript array reordering methods. For more information, please follow other related articles on the PHP Chinese website!