Home  >  Article  >  Web Front-end  >  Learn more about javascript array reordering methods

Learn more about javascript array reordering methods

迷茫
迷茫Original
2017-03-26 15:10:371077browse

Native reordering method of javascript array

1. Array reverse method

(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

2. Array sort method

(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!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn