Maison  >  Article  >  interface Web  >  Quelle est la méthode de tri du tableau es6

Quelle est la méthode de tri du tableau es6

青灯夜游
青灯夜游original
2022-04-11 18:04:2312885parcourir

La méthode de tri du tableau es6 est "sort()". La méthode sort() est utilisée pour trier les éléments du tableau. L'ordre de tri peut être alphabétique ou numérique, et par ordre croissant ou décroissant. La valeur par défaut est l'ordre alphabétique croissant. Cette méthode a un paramètre facultatif, qui doit être une fonction ; , et la syntaxe est "array. sort(callback(a,b))".

Quelle est la méthode de tri du tableau es6

L'environnement d'exploitation de ce tutoriel : système Windows 7, ECMAScript version 6, ordinateur Dell G3. La méthode

sort() est utilisée pour trier les éléments d'un tableau.

  • L'ordre de tri peut être alphabétique ou numérique et par ordre croissant ou décroissant.

  • L'ordre de tri par défaut est croissant par ordre alphabétique.

Parmi elles, la méthode sort() possède un paramètre facultatif. Cependant, ce paramètre doit être une fonction. Lors de l'appel de la méthode sort() d'un tableau, si aucun paramètre n'est passé, les éléments du tableau seront triés par ordre alphabétique (ordre d'encodage des caractères). Si vous souhaitez trier selon d'autres critères, vous devez passer un paramètre. et c'est une fonction. Cette fonction compare deux valeurs et renvoie un nombre décrivant l'ordre relatif des deux valeurs.

Syntaxe :

array.sort(callback(a,b))
Paramètres Description
callback(a,b)

Facultatif. Spécifie l'ordre de tri. Doit être une fonction.

Valeur de retour : type de tableau, qui est une référence au tableau. Veuillez noter que le tableau est trié sur le tableau d'origine et qu'aucune copie n'est effectuée.

Exemple :

 //sort的基本使用
  let arr = [8, 1, 4, 3, 7, 9]
  let Arr = [21, 55, 29, 105, 45]
  console.log(arr.sort()) //[1, 3, 4, 7, 8, 9]
  console.log(Arr.sort()) // [105, 21, 29, 45, 55]

Quelle est la méthode de tri du tableau es6

Comme le montre le code ci-dessus : la méthode sort() ne peut trier correctement les tableaux compris entre 0 et 9. Bien que les éléments du tableau avec plus de deux chiffres donnent une valeur de retour, ils le font. not Pas le résultat trié. En effet, sort() effectue un tri interne basé sur des codes ASCLL, et non sur des valeurs numériques. Cette méthode ne peut donc même pas effectuer un tri formel sur les nombres supérieurs à deux chiffres. En quoi est-elle différente du poisson salé ?

Voici le point important : sort() peut recevoir un rappel (a, b) qui porte deux paramètres formels, c'est-à-dire que a et b sont deux éléments dont la taille est sur le point d'être comparée, et il doit y avoir un retour valeur.

  • Lorsque la valeur de retour du rappel est un nombre positif, alors b sera disposé avant a

  • Lorsque la valeur de retour du rappel est un nombre négatif, alors a sera disposé avant b ; Lors du rappel Lorsque la valeur de retour est 0, alors les positions de a et b restent inchangées

  • Chaque fois que le tri est exécuté, les positions des deux paramètres a et b dans le tableau d'origine seront échangées en fonction de la valeur de retour ; ;

  • Après avoir lu ce qui précède, vous serez dérouté par la description. Vous demanderez certainement où est la valeur de retour ? Qui est le paramètre réel du paramètre a b ? Une fois que vous avez compris le code suivant, tout cela devient un jeu d’enfant !

     //sort 内部写法
      let Arr = [56, 21, 29, 105, 45]
      Arr.sort(function(a, b) { //callback
          if (a > b) { // a b 分别是Arr中的 56 21
              return 1  //返回正数 ,b排列在a之前
          } else {
              return -1 //返回负数 ,a排列在b之前
          }
      })
      console.log(Arr) //[21, 29, 45, 55, 105]
  • Logique d'exécution :

Il est à noter que les deux paramètres reçus par callback( a , b ) sont a = > l'élément suivant Lorsque la position reste inchangée, b est l'index de l'élément suivant -1 ; la condition pour juger de la fin du parcours est que le paramètre b ne peut pas obtenir de valeur et qu'il se termine. Par exemple, dans le code ci-dessus, lorsque le troisième tour est exécuté pour la deuxième fois, l'index de l'élément actuel est 3, alors b est l'élément suivant, c'est-à-dire que le 4ème élément du tableau 4 ne peut pas être obtenu et les conditions pour continuer le parcours ne sont pas rencontré, donc la traversée se termine !

Quelle est la méthode de tri du tableau es6Parlons des valeurs de retour : les valeurs de retour 1 et -1 écrites dans le code ci-dessus ne sont que des représentations symboliques de 1 étant un nombre positif et -1 étant un nombre négatif, quelle que soit la valeur de retour que vous écrivez dans le code. , le tri déterminera uniquement en interne si votre valeur de retour est positive. Le nombre est toujours un nombre négatif. Même si l'équation est vraie, elle renvoie 100 ou si ce n'est pas le cas, elle renvoie -10 000.

Explication de l'abréviation :

//简写 最终版  
  let Arr = [56, 21, 88, 10, 5, 77]
  Arr.sort((a, b) => a - b) //箭头函数不加大括号指向这个函数的返回值,可以不写return关键字
  console.log(Arr) //[5, 10, 21, 56, 77, 88]

Comme le montre la figure ci-dessus, la méthode de traitement interne de la fonction de rappel est a - b, au lieu de comparer deux nombres. En effet, l'étape de comparaison de deux nombres se fait par tri. Il vous suffit de spécifier la valeur de retour. Mathématiquement, il arrive que les grands nombres - décimales = nombres positifs, les petits nombres - grands nombres = nombres négatifs

Quelle est la méthode de tri du tableau es6Exemple 56 - 21. = Si 35 est un nombre positif, la valeur de retour est un nombre positif, et le nombre positif représente un changement de position

21 - 88 = 35 est un nombre négatif, la valeur de retour est un nombre négatif, et le nombre négatif ; représente un changement de position ;

Si en mathématiques, grand nombre - décimal ≠ nombres positifs, décimaux - grands nombres ≠ nombres négatifs ne peuvent pas être abrégés ainsi. Il devrait donc être clair que le tri se compare en interne plutôt que de se soustraire

[Recommandations associées :

tutoriel vidéo javascript

,

front-end web

] ;

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