Maison > interface Web > js tutoriel > 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

迷茫
Libérer: 2017-03-26 15:10:37
original
1244 Les gens l'ont consulté

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()   //没有参数
Copier après la connexion

(3) Exemple

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

myArray.reverse();

console.log(myArray); //  ["three", "two", "one"]
Copier après la connexion

(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]
Copier après la connexion

(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);
Copier après la connexion
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() //没有添加参数
Copier après la connexion

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;
        };
      }
Copier après la connexion

(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}
Copier après la connexion

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;
        }
  };
Copier après la connexion

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

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal