Résumé personnel des opérations du tableau es6

motivation

es6, pour parler franchement, est une version améliorée de js. . . . . Eh bien, en dernière analyse, il s'agit toujours de js natif, mais il a plus d'attributs, de types, d'instructions et autres que le js d'origine.

Cela fait quelques années que es6 est sorti. Comme le travail de Lao Gu concerne principalement la version PC et que la plupart des utilisateurs sont des personnes âgées, en gros, il existe encore beaucoup de versions très anciennes du navigateur, donc Lao Gu a jamais dédié à étudier les nouvelles fonctionnalités d'es6, le nouveau contenu, etc.

Sachant que Xianyu a commencé à se redresser cette année et a changé son temps de pêche de la lecture de romans à la résolution de questions algorithmiques, il a commencé à se ressourcer.

Étant donné que la plupart des banques de questions prennent en charge py et js, Lao Gu utilise essentiellement ces deux langages pour le contenu des réponses algorithmiques.

Pas grand chose à dire sur py, il y a beaucoup de sucre syntaxique. Mais l'amélioration js après es6 ne permet pas grand chose.

Ainsi, Lao Gu révisait les questions d'algorithme tout en se familiarisant avec certaines opérations d'es6. Eh bien, principalement le tableau.

tableau

Dans la version précédente de js, l'ajout, la suppression, la modification et l'interrogation du tableau ne seront pas élaborés, ce qui n'est pas le contenu d'es6.

génération de tableaux

Parlons de la génération de tableaux. Dans le passé, nous devions définir une variable comme un tableau, puis y insérer des éléments, ou définir directement un tableau de longueur fixe, puis modifier la valeur de chaque élément dans une boucle.

Probablement les deux manières suivantes

var a = [];
for(var i=0;i<5;i++){
    
    
	a.push(i)
}
console.log(a);

insérer la description de l'image ici

var b = new Array(5);
for (var i=0;i<b.length;i++){
    
    
	b[i] = i ** 2;
}
console.log(b)

insérer la description de l'image ici
Et es6 offre une nouvelle façon d'utiliser la carte

Exécutez d'abord Array.from(new Array(length)), voyons la différence entre le résultat sans exécuter Array.from et le résultat après exécution.

insérer la description de l'image ici
On peut voir que l'un est déjà légal, chaque élément a une matrice mémoire distincte et l'autre est un tableau où chaque élément n'est pas alloué

Pour le tableau généré uniquement par new Array, l'instruction map ne peut pas être exécutée, nous utilisons donc la méthode suivante pour l'exploiter

Array.from(new Array(10)).map(function(x,y){
    
    return y + 1;})

insérer la description de l'image ici
En utilisant map, vous pouvez passer deux paramètres. Bien sûr, ce n'est pas nécessaire et vous ne pouvez pas donner de paramètres.

Voici deux paramètres, le premier est la valeur de l'élément correspondant dans le tableau courant, et le deuxième paramètre est l'élément courant, correspondant à l'indice du tableau.

C'est également légal si aucun paramètre n'est transmis.

Array.from(new Array(10)).map(function(){
    
    return 1;})

insérer la description de l'image ici

objet énumérable dans un tableau

Dans le système js d'origine, de nombreuses choses peuvent être obtenues sous forme de collection, de tableau de classes, ou de collection, etc.

Cependant, voici aussi un mais. mais! Ces éléments ne prennent pas en charge les opérations sur les tableaux, telles que pop, shift, push, etc., qui n'ont rien à voir avec ces éléments.

Souvent, lorsque nous opérons, nous devons d'abord créer une variable tableau, puis énumérer les éléments de ces gadgets en boucle et les mettre dans le tableau, afin de faciliter nos opérations ultérieures.

Eh bien maintenant, le Array.from mentionné tout à l'heure peut convertir toutes les choses énumérables en types de tableaux.
insérer la description de l'image ici
Wow, qu'y a-t-il d'autre à dire, en utilisant directement les différentes opérations prises en charge par le tableau, n'est-ce pas plus pratique que d'utiliser ces types d'objets désordonnés.

fonction flèche

Mais si vous utilisez une fonction fléchée, vous avez besoin d'au moins un paramètre. S'il y a plusieurs paramètres, vous devez mettre des parenthèses autour des paramètres. En ce qui concerne les fonctions fléchées, il m'est soudain venu à l'esprit que le tri des tableaux était réalisé
insérer la description de l'image ici
insérer la description de l'image ici
par écrire une fonction de fermeture dans le passé. Désormais, les fonctions Flèche peuvent également être utilisées à la place. Par exemple, le tableau est complètement inversé, c'est-à-dire inversé.

Array.from(new Array(10)).map((x,y) => y + 1).sort(x => -1)

insérer la description de l'image ici
Ce n'est pas différent de [::-1] de python, hehe.

filtre

Parfois, nous pouvons avoir besoin de filtrer le tableau existant, ne laissant que des données qualifiées, la méthode de filtrage peut alors simplifier l'opération d'origine, sans avoir à réécrire un parcours de boucle, puis juger si les données sont légales. Jouons avec les fonctions fléchées. Par exemple, parmi 100 nombres, tous les nombres divisibles par 3 et par 7.

Array.from(new Array(100)).map((x,y) => y + 1).filter(x => x % 3 == 0 && x % 7 == 0)

insérer la description de l'image ici
filter peut également transmettre deux paramètres.La signification des paramètres est la même que celle de map.Il peut être jugé en fonction de la valeur ou de l'indice d'indice.

juger tous les éléments

Dans le passé, nous devions juger un tableau, si tous les éléments remplissaient certaines conditions, ou une boucle. Maintenant, le fonctionnement du tableau es6 fournit une nouvelle méthode, chaque, jetons un coup d'œil à travers un exemple. Déterminez si tous les éléments du tableau sont des carrés parfaits.

Array.from(new Array(5)).map((x,y) => (y + 1) ** 2).every(x => x ** .5 == Math.floor(x ** .5))

insérer la description de l'image ici

boucle d'énumération

Dans le passé, nous devions lire chaque élément du tableau et exécuter d'autres instructions basées sur ces données. Nous ne pouvions utiliser que for ou while

Maintenant, remplacez la boucle par forEach.

Array.from(new Array(10)).forEach((x,y) => console.log(`${
      
      y+1}`))

insérer la description de l'image ici
C'est beaucoup plus pratique que de définir une variable à chaque fois et de la comparer avec la longueur du tableau.

résumé

Ensuite, une fois qu'es6 aura amélioré le fonctionnement du tableau js, il nous sera beaucoup plus facile de traiter certains contenus. Ici, nous utilisons un sujet de la pratique quotidienne de csdn comme exemple.

Le tri impair-pair , un sujet très simple.

Description du titre
Il y a des nombres impairs et des nombres pairs dans un tableau (dans le désordre), ajustez l'ordre du tableau pour que les nombres impairs soient devant les nombres pairs.

var n = readline()
print(Array.from(readline().split(' ')).map(x => parseInt(x)).sort((x,y) => x % 2 ? (y % 2 ? 1 : -1) : 1).join(' '))

Dans la première ligne, lisez un paramètre numérique, et dans la deuxième ligne n entiers, nous allons couper la chaîne directement pour obtenir un tableau, puis convertir tous les éléments du tableau en types entiers, puis les trier. est terminé, insérez directement un espace et affichez sous forme de chaîne. . . .

Ah, ce sujet est désormais complété avec es6, c'est trop simple.

Euh. . . Le seul inconvénient est que les navigateurs de beaucoup de gens sont d'anciennes versions, qui peuvent ne pas prendre en charge ES6, donc dans le travail réel, vous ne pouvez pas être paresseux autant que vous le souhaitez, ce qui est vraiment déprimant.

insérer la description de l'image ici

Je suppose que tu aimes

Origine blog.csdn.net/superwfei/article/details/131703250
conseillé
Classement