Maison  >  Article  >  interface Web  >  En savoir plus sur les méthodes de réorganisation des tableaux javascript

En savoir plus sur les méthodes de réorganisation des tableaux javascript

迷茫
迷茫original
2017-03-26 15:10:371158parcourir

Méthode de réorganisation native du tableau javascript

1. Méthode d'inversion du tableau

(1) Fonction

Position inversée des éléments du tableau (changer le tableau d'origine)

(2) Syntaxe

arr.reverse()   //没有参数

(3) Exemple

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

myArray.reverse();

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

(4) Valeur de retour
Une référence au tableau d'origine ne générera pas de nouveau tableau

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) Inconvénients
Pas très flexible, le tableau ne peut qu'être inversé

2. Méthode de tri des tableaux

(1) La fonction
sort() triera les éléments du tableau à la position appropriée (le tableau d'origine changera)

(2) Syntaxe

arr.sort();
arr.sort(compareFunction);
Le paramètre

(3)
est facultatif. Utilisé pour formuler une fonction qui trie dans un certain ordre.

Si les paramètres sont omis, par exemple, appelez-le ainsi.

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

La fonction sort() appliquera les paramètres suivants, donc la comparaison par défaut est le code Unicode

    //关于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) Principe
1. Définissez d'abord les paramètres et saisissez-les vous-même Ou utilisez la valeur par défaut

2. Si le nombre d'éléments est inférieur à 2, renvoyez directement

3. Déterminez si l'objet actuel est un tableau Si l'objet est un tableau. pas un tableau, la valeur sur la chaîne prototype sera Copier dans le tableau actuel et trier

    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. Trier toutes les valeurs non définies dans le tableau à la fin,

5 . Triez toutes les valeurs du tableau qui ne sont pas indéfinies

6. Lorsque le nombre d'éléments dans le tableau est inférieur ou égal à 10, utilisez InsertionSort pour trier

 //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. Lorsque le nombre d'éléments dans le tableau est supérieur à 10, utilisez le tri rapide

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn