Maison >interface Web >js tutoriel >Comment ignorer des éléments dans .map() ?
En JavaScript, nous devons parfois ignorer des éléments du tableau lors de l'utilisation de la méthode map(). Par exemple, seulement si les valeurs du tableau sont finies, nous devons mapper les valeurs d'un tableau à un autre après avoir effectué quelques opérations mathématiques sur les éléments.
Dans ce cas, l'utilisateur peut utiliser la méthode suivante pour ignorer les éléments du tableau lors de l'utilisation de la méthode map().
Dans la méthode array.map(), nous pouvons utiliser l'instruction if-else pour ignorer l'élément. Si l'élément satisfait à la condition de l'instruction if-else, l'élément doit être renvoyé pour le mappage, sinon nous pouvons renvoyer une valeur nulle ;
Les utilisateurs peuvent utiliser l'instruction if-else pour ignorer des éléments dans la méthode map() selon la syntaxe suivante.
array.map((number) => { if (condition) { // return some value } return null; })
Dans la syntaxe ci-dessus, si la condition de l'instruction if-else est évaluée à true, nous renverrons une valeur sinon, nous renverrons null ;
Dans l'exemple ci-dessous, nous avons créé un tableau contenant des valeurs numériques. Notre objectif est de multiplier chaque élément positif par deux et de les mapper au tableau multiplicateur. Dans la méthode map(), nous vérifions si le tableau est positif en utilisant la condition "élément > 0", et s'il est vrai, nous renvoyons le nombre multiplié par 2.
Dans la sortie, l'utilisateur peut voir que lorsque nous renvoyons une valeur nulle, l'index du tableau apparaît comme nul.
<html> <body> <h2>Using the <i> if-else </i> statement to skip over element in the array.map() method</h2> <div id = "output"></div> </body> <script> let output = document.getElementById('output'); let array = [10, 20, 34, 4, 5, 6, 0, -1, 3, 2, 4, -2]; let multiplier = array.map((number) => { if (number > 0) { return number * 2; } else { return null; } }) output.innerHTML += "The final array after skipping the negative number in the map() method is - " + multiplier; </script> </html>
Nous pouvons utiliser la méthode filter() avant la méthode map(). En utilisant la méthode filter(), nous pouvons supprimer certains éléments et filtrer les éléments requis dans un autre tableau.
Après cela, nous pouvons utiliser la méthode map avec le tableau créé par la méthode filter(), afin de pouvoir ignorer indirectement les éléments de la méthode map().
Les utilisateurs peuvent utiliser la méthode filter() selon la syntaxe suivante pour ignorer des éléments dans la méthode map().
let filteredValues = array.filter((string) => { // filtering condition }) let str_array = filteredValues.map((element) => { // map value })
Dans la syntaxe ci-dessus, nous filtrons d'abord les valeurs du tableau et utilisons la méthode map() sur les valeurs filtrées.
Nous avons créé un tableau contenant différentes valeurs de chaîne dans l'exemple ci-dessous. Notre objectif est de convertir toutes les chaînes en majuscules où le premier caractère est en majuscule. Donc, d'abord, nous utilisons la méthode filter() pour filtrer toutes les chaînes dont le premier caractère est en majuscule et les stocker dans le tableau filteredValues.
Ensuite, nous les mapperons sur un nouveau tableau après les avoir convertis en majuscules à l'aide de la méthode map() avec le tableau filteredValues .
<html> <body> <h2>Using the <i> array.filter() </i> method to skip over element in the array.map() method.</h2> <div id = "output"></div> </body> <script> let output = document.getElementById('output'); let array = ["Hello", "hi", "JavaScript", "typescript", "C", "CPP", "html"]; let filteredValues = array.filter((string) => { if (string.charCodeAt(0) > 96 && string.charCodeAt(0) < 123) { return true; } return false; }) let str_array = filteredValues.map((element) => { return element.toUpperCase(); }) output.innerHTML += "The filtered values from the array are " + filteredValues + "<br/>"; output.innerHTML += "The final array after skipping some strings in the map() method is - " + str_array + "<br>"; </script> </html>
map() mappe les éléments à un nouveau tableau. Nous pouvons également utiliser la méthode réduire() pour atteindre le même objectif. Nous pouvons utiliser la méthode réduire() pour obtenir un tableau vide et mapper les éléments du tableau un par un.
Les utilisateurs peuvent utiliser la méthode réduire() selon la syntaxe ci-dessous pour fonctionner comme la méthode map() et ignorer certains éléments.
let final_Array = numbers.reduce(function (array, element) { if (condition) { // perform some operation // push the final element to the array // return array } // return array }, []);
Dans la syntaxe ci-dessus, nous poussons l'élément dans le tableau en fonction de certaines conditions ; sinon, nous renvoyons le tableau sans pousser l'élément vers le tableau pour ignorer l'élément.
Dans l'exemple ci-dessous, notre objectif est de mapper tous les éléments divisibles par deux sur lui-même. Par conséquent, nous passons la fonction de rappel comme premier paramètre de la méthode réduire() et le tableau vide comme deuxième paramètre.
Dans la fonction de rappel, si la condition est remplie, nous poussons l'élément vers le tableau et renvoyons le tableau. Sinon, nous renvoyons le tableau sans aucune modification.
Enfin, la méthode réduire() renvoie un tableau contenant tous les éléments mappés, que nous stockons dans la variable Final_array, que l'utilisateur peut voir dans la sortie.
<html> <body> <h2>Using the <i> array.reduce() </i> method to skip over element in the array.map() method.</h2> <div id = "output"></div> </body> <script> let output = document.getElementById('output'); let numbers = [10, 33, 34, 55, 57, 58, 90, 87, 85, 53]; let final_Array = numbers.reduce(function (array, element) { if (element % 2 == 0) { array.push(element); } return array; }, []); output.innerHTML += "The final array after skipping some strings in the map() method is - " + final_Array + "<br>"; </script> </html>
Nous avons appris trois façons d'ignorer des éléments dans la méthode map(). La première méthode stocke les éléments vides et prend plus de place, la seconde méthode augmente la complexité temporelle car nous utilisons la méthode filter() seule. La troisième méthode est la meilleure car elle optimise l’espace et le temps.
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!