Tapuscrit tri d'un tableau
J'ai essayé de trouver un très étrange question, j'ai couru avec des caractères d'imprimerie. Il a été le traitement d'insertion de l'expression Booléenne que quel que soit le premier type de la valeur a à la place de l'expression complète.
Donc, si vous essayez quelque chose de simple comme suit:
var numericArray:Array<number> = [2,3,4,1,5,8,11];
var sorrtedArray:Array<number> = numericArray.sort((n1,n2)=> n1 > n2);
Vous obtenez un message d'erreur sur votre méthode de tri dire les paramètres ne correspondent pas à la signature de l'appel de la cible, parce que votre résultat est numérique et non Booléen. Je suppose que je suis absent quelque chose de bien, parce que je suis sûr n1>n2 est un Booléen de l'instruction.
Vous devez vous connecter pour publier un commentaire.
L'erreur est tout à fait correcte.
Comme il essaie de vous dire,
.sort()
prend une fonction qui retourne le nombre, pas un booléen.Vous avez besoin de retourner négatif si le premier élément est plus petit; positif si elle est plus grande, ou zéro si ils sont égaux.
Lors du tri de nombres, vous pouvez utiliser le compact de comparaison:
c'est à dire
-
plutôt que<
.Si vous êtes à la comparer à rien d'autre, vous aurez besoin de convertir la comparaison d'un nombre.
Grande réponse Sohnee.
Voudrais ajouter que si vous avez un tableau d'objets et que vous souhaitez trier par touche presque le même, c'est un exemple de ce que peut trier par date(nombre) ou titre(chaîne):
Pourrait également rendre les valeurs à l'intérieur comme variables n1[champ] vs n2[champ] si son plus dynamique, il suffit de garder la diff entre les chaînes et les nombres.
Tri Mixte Array (des lettres et des chiffres)
JS:
La façon la plus simple semble être de soustraire le deuxième numéro de la première:
https://alligator.io/js/array-sort-numbers/