Heim  >  Artikel  >  Web-Frontend  >  Erfahren Sie mehr über die Methoden zur Neuordnung von Javascript-Arrays

Erfahren Sie mehr über die Methoden zur Neuordnung von Javascript-Arrays

迷茫
迷茫Original
2017-03-26 15:10:371210Durchsuche

Native Neuordnungsmethode des Javascript-Arrays

1. Array-Umkehrmethode

(1) Funktion

Position umkehren der Elemente im Array (ändern Sie das ursprüngliche Array)

(2) Syntax

arr.reverse()   //没有参数

(3) Beispiel

let myArray =  [ 'one', 'two', 'three' ]; 

myArray.reverse();

console.log(myArray); //  ["three", "two", "one"]

(4) Rückgabewert
Durch die Referenz des ursprünglichen Arrays wird kein neues Array generiert

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) Nachteile
Nicht sehr flexibel, das Array kann nur umgekehrt werden

2. Array-Sortiermethode

(1) Funktion
sort() sortiert die Elemente des Arrays an der entsprechenden Position (das ursprüngliche Array ändert sich)

(2) Syntax

arr.sort();
arr.sort(compareFunction);

(3) Parameter
ist optional. Wird verwendet, um eine Funktion zu formulieren, die in einer bestimmten Reihenfolge sortiert.

Wenn beispielsweise Parameter weggelassen werden, nennen Sie es so.

     arr.sort() //没有添加参数

Die Funktion sort() wendet die folgenden Parameter an, daher ist der Standardvergleich der 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) Prinzip
1. Stellen Sie zuerst die Parameter ein und geben Sie sie selbst ein Oder verwenden Sie den Standardwert

2. Wenn die Anzahl der Elemente weniger als 2 ist, geben Sie direkt zurück

3. Bestimmen Sie, ob das aktuelle Objekt ein Array ist kein Array, der Wert in der Prototypenkette wird in das aktuelle Array kopiert und sortiert

    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. Alle undefinierten Werte im Array am Ende sortieren,

5 . Sortieren Sie alle Werte im Array, die nicht undefiniert sind

6. Wenn die Anzahl der Elemente im Array kleiner oder gleich 10 ist, verwenden Sie InsertionSort zum Sortieren

 //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. Wenn die Anzahl der Elemente im Array mehr als 10 beträgt, verwenden Sie die Schnellsortierung

Das obige ist der detaillierte Inhalt vonErfahren Sie mehr über die Methoden zur Neuordnung von Javascript-Arrays. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn