Array et méthodes d'objets utiles en JavaScript

L'auteur de l'article, dont nous publions aujourd'hui une traduction, explique que l'un des numéros du podcast Syntax FM , qui donnait un aperçu des méthodes utiles des objets et des tableaux en JavaScript, lui a donné l'idée. Ces méthodes aident les développeurs à écrire du code propre et lisible. Leur utilisation réduit le besoin de bibliothÚques tierces comme Lodash .

image

Array.prototype.filter ()


La méthode Array.prototype.filter () crée un nouveau tableau dans lequel ne tombent que les éléments du tableau d'origine qui correspondent à la condition spécifiée.

▍ Exemple


Sur la base d'un tableau contenant des informations sur les étudiants, nous allons créer un nouveau tableau dans lequel les enregistrements ne seront inclus que sur les étudiants dont l'ùge leur permet d'acheter de l'alcool.

const studentsAge = [17, 16, 18, 19, 21, 17]; const ableToDrink = studentsAge.filter( age => age > 18 ); //  ableToDrink    : [19, 21] 

Array.prototype.map ()


La méthode Array.prototype.map () vous permet de créer un nouveau tableau basé sur les valeurs traitées d'une maniÚre ou d'une autre d'un autre tableau. Cette méthode est idéale pour modifier des données; du fait qu'elle n'apporte pas de modifications au tableau d'origine, elle est souvent utilisée dans React.

▍ Exemple


En fonction du tableau numérique, créez un nouveau tableau, au début de chaque élément dont le signe $ sera placé.

 const numbers = [2, 3, 4, 5]; const dollars = numbers.map( number => '$' + number); //      dollars: ['$2', '$3', '$4', '$5'] 

Array.prototype.reduce ()


La mĂ©thode Array.prototype.reduce () est souvent nĂ©gligĂ©e Ă  tort . Il vous permet de rĂ©duire le tableau Ă  une seule valeur qui s'accumule dans l'Ă©lĂ©ment rĂ©cepteur. La valeur renvoyĂ©e par cette mĂ©thode peut ĂȘtre de n'importe quel type. Par exemple, il peut s'agir d'un objet, d'un tableau, d'une chaĂźne ou d'un nombre.

▍ Exemple


Nous utiliserons la méthode .reduce() afin d'obtenir la somme des éléments d'un tableau numérique.

 const numbers = [5, 10, 15]; const total = numbers.reduce( (accumulator, currentValue) => accumulator + currentValue); //   total    30 

En fait, cette mĂ©thode peut ĂȘtre utilisĂ©e de nombreuses façons intĂ©ressantes. Des exemples pertinents peuvent ĂȘtre trouvĂ©s dans la documentation MDN . En particulier, nous parlons de dĂ©velopper des tableaux de tableaux, de regrouper des objets par propriĂ©tĂ©s et de supprimer les Ă©lĂ©ments en double des tableaux.

Array.prototype.forEach ()


La méthode Array.prototype.forEach () applique la fonction qui lui est transmise à chaque élément du tableau.

▍ Exemple


Voici comment sortir chaque élément du tableau vers la console à l'aide de la méthode .forEach() .

 const emotions = ['happy', 'sad', 'angry']; emotions.forEach( emotion => console.log(emotion) ); //   : // 'happy' // 'sad' // 'angry' 

Array.prototype.some ()


La mĂ©thode Array.prototype.some () vĂ©rifie si au moins un Ă©lĂ©ment du tableau correspond Ă  la condition spĂ©cifiĂ©e par la fonction qui lui est transmise. Cette mĂ©thode, par exemple, est capable de bien se montrer dans la rĂ©solution de la tĂąche de vĂ©rification des privilĂšges des utilisateurs. Il peut ĂȘtre considĂ©rĂ© comme un analogue du .forEach() prĂ©cĂ©demment considĂ©rĂ©, Ă  la diffĂ©rence que, lorsqu'il est utilisĂ© Ă  l'aide de la fonction qui lui est transmise, il est possible d'effectuer certaines actions sur les Ă©lĂ©ments du tableau jusqu'Ă  ce que cette fonction renvoie la vraie valeur, puis interrompez le traitement.

▍ Exemple


Vérifiez si le tableau contient au moins une chaßne d' admin .

 const userPrivileges = ['user', 'user', 'user', 'admin']; const containsAdmin = userPrivileges.some( element => element === 'admin'); //  containsAdmin   true 

Array.prototype.every ()


La méthode Array.prototype.every () est similaire à la méthode .some() décrite ci-dessus, mais elle ne renvoie la valeur true que si tous les éléments du tableau remplissent la condition spécifiée par la fonction passée à cette méthode.

▍ Exemple


Vérifiez si toutes les estimations stockées dans le tableau sont égales ou supérieures à 3.

 const ratings = [3, 5, 4, 3, 5]; const goodOverallRating = ratings.every( rating => rating >= 3 ); //goodOverallRating   true 

Array.prototype.includes ()


La méthode Array.prototype.includes () vous permet de savoir si un tableau contient une valeur donnée. Elle est similaire à la méthode .some() , mais elle ne vérifie pas si les éléments du tableau correspondent à une certaine condition, mais plutÎt si le tableau contient la valeur spécifiée lors de son appel.

▍ Exemple


Vérifiez s'il y a un élément de chaßne waldo dans le tableau:

 const names = ['sophie', 'george', 'waldo', 'stephen', 'henry']; const includesWaldo = names.includes('waldo'); // includesWaldo   true 

Array.from ()


La méthode statique Array.from () vous permet de créer des tableaux basés sur d'autres tableaux ou chaßnes. Si nécessaire, cette méthode peut recevoir une fonction pour effectuer le mappage, ce qui vous permet d'influencer les données qui tomberont dans le nouveau tableau. En fait, une méthode spéciale est fournie pour le mappage - Array.prototype.map () , donc il n'est pas entiÚrement clair pourquoi quelqu'un pourrait avoir besoin de cette fonctionnalité de la méthode Array.from() .

▍ Exemple


Créez un tableau basé sur la chaßne.

 const newArray = Array.from('hello'); // newArray    ['h', 'e', 'l', 'l', 'o'] 

Créez un tableau contenant des valeurs doublées des éléments du tableau numérique d'origine.

 const doubledValues = Array.from([2, 4, 6], number => number * 2); //   doubleValues    : [4, 8, 12] 

Object.values ​​()


La mĂ©thode Object.values ​​() renvoie un tableau de valeurs de propriĂ©tĂ© de l'objet qui lui est transmis.

▍ Exemple


Nous formons un tableau de valeurs de propriétés d'objet.

 const icecreamColors = {   chocolate: 'brown',   vanilla: 'white',   strawberry: 'red', } const colors = Object.values(icecreamColors); //  colors    ["brown", "white", "red"] 

Object.keys ()


La méthode Object.keys () renvoie un tableau composé de noms de propriétés d'objet (clés).

▍ Exemple


Nous formerons un tableau de noms de propriétés d'objet.

 const icecreamColors = { chocolate: 'brown', vanilla: 'white', strawberry: 'red', } const types = Object.keys(icecreamColors); //     types: ["chocolate", "vanilla", "strawberry"] 

Object.entries ()


La méthode Object.entries () renvoie, aprÚs avoir traité l'objet qui lui est transmis, un tableau contenant des tableaux qui sont des paires de la forme [, ] , qui sont les noms des propriétés et les valeurs de ces propriétés.

▍ Exemple


Nous formons un tableau contenant, pour l'objet qui nous intéresse, des données sur les noms des propriétés et leurs valeurs.

 const weather = { rain: 0, temperature: 24, humidity: 33, } const entries = Object.entries(weather); //   entries    // [['rain', 0], ['temperature', 24], ['humidity', 33]] 

Opérateur d'extension et tableaux


L'opĂ©rateur d'extension (opĂ©rateur d' Ă©talement , ...), appliquĂ© aux tableaux, vous permet de les dĂ©velopper en en extrayant leurs Ă©lĂ©ments. Cet opĂ©rateur est utile, par exemple, lorsque vous devez combiner plusieurs tableaux. De plus, son utilisation Ă©limine la nĂ©cessitĂ© d'utiliser la mĂ©thode .splice() si vous devez supprimer certains Ă©lĂ©ments du tableau, car elle peut ĂȘtre combinĂ©e avec la mĂ©thode .slice() , ce qui Ă©vite de modifier le tableau d'origine.

▍ Exemple


Combinez les deux tableaux.

 const spreadableOne = [1, 2, 3, 4]; const spreadableTwo = [5, 6, 7, 8]; const combined = [...spreadableOne, ...spreadableTwo]; //  combined   : [1, 2, 3, 4, 5, 6, 7, 8] 

Nous formons un nouveau tableau, qui est le tableau d'origine duquel l'Ă©lĂ©ment a Ă©tĂ© supprimĂ©. Dans ce cas, le tableau d'origine ne doit pas ĂȘtre modifiĂ©.

 const animals = ['squirrel', 'bear', 'deer', 'salmon', 'rat']; const mammals = [...animals.slice(0,3), ...animals.slice(4)]; // mammals   : ['squirrel', 'bear', 'deer', 'rat'] 

Opérateur d'extension et objets


L'application de l'opĂ©rateur d'extension aux objets vous permet de leur ajouter de nouvelles propriĂ©tĂ©s et valeurs sans modifier les objets d'origine (c'est-Ă -dire que de nouveaux objets sont créés Ă  la suite de ces opĂ©rations). De plus, cet opĂ©rateur peut ĂȘtre utilisĂ© pour combiner des objets. Il convient de noter ici que l'opĂ©rateur d'extension appliquĂ© Ă  un objet n'affecte pas les objets qui y sont imbriquĂ©s.

▍ Exemple


Créez un nouvel objet en ajoutant une nouvelle propriété à l'objet d'origine sans modifier l'objet d'origine.

 const spreadableObject = { name: 'Robert', phone: 'iPhone' }; const newObject = { ...spreadableObject, carModel: 'Volkswagen' } //  newObject   : // { carModel: 'Volkswagen', name: 'Robert', phone: 'iPhone' } 

La syntaxe des paramĂštres de fonction restants


Lorsque vous travaillez avec des fonctions, vous pouvez utiliser la syntaxe des paramÚtres restants afin d'organiser la réception d'un nombre quelconque d'arguments sous la forme d'un tableau.

▍ Exemple


Nous imprimons un tableau contenant les arguments passés à la fonction.

 function displayArgumentsArray(...theArguments) { console.log(theArguments); } displayArgumentsArray('hi', 'there', 'bud'); //      ['hi', 'there', 'bud'] 

Object.freeze ()


La mĂ©thode Object.freeze () «fige» un objet, empĂȘchant les propriĂ©tĂ©s existantes de cet objet de modifier ou d'ajouter de nouvelles propriĂ©tĂ©s et valeurs Ă  l'objet. Il existe une idĂ©e fausse selon laquelle cette mĂ©thode est similaire Ă  la dĂ©claration d'objets Ă  l'aide du mot clĂ© const , cependant, les objets constants peuvent ĂȘtre modifiĂ©s.

▍ Exemple


Nous «figons» un objet, aprĂšs quoi nous essayons de changer sa propriĂ©tĂ© et nous assurons que cela ne peut pas ĂȘtre fait.

 const frozenObject = { name: 'Robert' } Object.freeze(frozenObject); frozenObject.name = 'Henry'; //  frozenObject  ,     { name: 'Robert' } 

Object.seal ()


La mĂ©thode Object.seal () vous permet de "sceller" l'objet, empĂȘchant l'ajout de nouvelles propriĂ©tĂ©s. Dans le mĂȘme temps, les propriĂ©tĂ©s existantes peuvent ĂȘtre modifiĂ©es.

▍ Exemple


Nous «scellons» l'objet, ce qui ne nous permettra pas d'y ajouter une nouvelle propriété, mais permettra de modifier les propriétés existantes.

 const sealedObject = { name: 'Robert' } Object.seal(sealedObject); sealedObject.name = 'Bob'; sealedObject.wearsWatch = true; //  sealedObject   : { name: 'Bob' } 

Object.assign ()


La mĂ©thode Object.assign () vous permet de combiner des objets en copiant les propriĂ©tĂ©s d'un objet Ă  un autre. En fait, le mĂȘme effet peut ĂȘtre obtenu en utilisant l'opĂ©rateur d'expansion dĂ©crit ci-dessus, de sorte que ce procĂ©dĂ© peut ĂȘtre complĂštement supprimĂ©. Il convient de noter que cette mĂ©thode, comme l'opĂ©rateur d'extension, n'effectue pas de clonage en profondeur d'objets. Si vous avez besoin d'un outil prĂȘt Ă  l'emploi pour le clonage en profondeur d'objets - jetez un Ɠil aux outils de la bibliothĂšque Lodash .

▍ Exemple


Créons un à partir de deux objets.

 const firstObject = { firstName: 'Robert' } const secondObject = { lastName: 'Cooper' } const combinedObject = Object.assign(firstObject, secondObject); //      combinedObjec : { firstName: 'Robert', lastName: 'Cooper' } 

Résumé


Dans cet article, nous avons parlé des méthodes utiles de tableaux et d'objets en JavaScript. De nombreuses méthodes décrites ici renvoient de nouveaux tableaux ou objets. Cela permet de les combiner en chaßnes. Ces méthodes ne modifient pas les données source, ce qui est particuliÚrement important dans le développement de React. De plus, l'utilisation de ces méthodes, dans la grande majorité des cas, vous permet d'abandonner des boucles comme for et while .

Chers lecteurs! Quelles méthodes de tableaux et d'objets en JavaScript utilisez-vous le plus souvent?

Source: https://habr.com/ru/post/fr413169/


All Articles