window.pipedriveLeadboosterConfig = { base : 'leadbooster-chat.pipedrive.com', companyId : 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version : 2, } ;(function () { var w = window if (w.LeadBooster) { console.warn('LeadBooster existe déjà') } else { w.LeadBooster = { q : [], on : function (n, h) { this.q.push({ t : 'o', n : n, h : h }) }, trigger : function (n) { this.q.push({ t : 't', n : n }) }, } } })() Trois points utiles - le reste et l'écart en JavaScript - The Codest
The Codest
  • A propos de nous
  • Services
    • Développement de logiciels
      • Développement frontal
      • Développement backend
    • Staff Augmentation
      • Développeurs frontaux
      • Développeurs backend
      • Ingénieurs des données
      • Ingénieurs en informatique dématérialisée
      • Ingénieurs AQ
      • Autres
    • Conseil consultatif
      • Audit et conseil
  • Industries
    • Fintech et banque
    • E-commerce
    • Adtech
    • Santé (Healthtech)
    • Fabrication
    • Logistique
    • Automobile
    • IOT
  • Valeur pour
    • CEO
    • CTO
    • Gestionnaire des livraisons
  • Notre équipe
  • Études de cas
  • Savoir comment
    • Blog
    • Rencontres
    • Webinaires
    • Ressources
Carrières Prendre contact
  • A propos de nous
  • Services
    • Développement de logiciels
      • Développement frontal
      • Développement backend
    • Staff Augmentation
      • Développeurs frontaux
      • Développeurs backend
      • Ingénieurs des données
      • Ingénieurs en informatique dématérialisée
      • Ingénieurs AQ
      • Autres
    • Conseil consultatif
      • Audit et conseil
  • Valeur pour
    • CEO
    • CTO
    • Gestionnaire des livraisons
  • Notre équipe
  • Études de cas
  • Savoir comment
    • Blog
    • Rencontres
    • Webinaires
    • Ressources
Carrières Prendre contact
Flèche arrière RETOUR
2019-11-25
Développement de logiciels

Trois points utiles - le reste et l'écart en JavaScript

Lukasz Kolko

ECMAScript 2015 nous a apporté de nombreuses nouveautés, qui se sont traduites par un grand nombre d'améliorations. Aujourd'hui, nous allons examiner de plus près deux fonctionnalités qui nous facilitent la vie. Voici les parémètres de repos et la syntaxe de propagation.

Paramètres de repos

La syntaxe restante nous permet de représenter un nombre indéfini d'arguments sous la forme d'un tableau. Examinons une fonction qui additionne tous les arguments passés.

const sum = (...args) => args.reduce((prev, current) => prev + current) ;

console.log(sum(1, 2)) ; // 3
console.log(sum(1, 2, 3)) ; // 6

Syntaxe d'étalement

L'opérateur d'expansion nous permet d'étendre les objets itérables en éléments individuels. Cette fonctionnalité est opposée à celle que nous avons obtenue avec les autres paramètres. Elle peut être appliquée à tous les itérables, tels que les tableaux, les objets, les ensembles, les cartes, etc.

const sum = (x, y, z) => x + y + z ;
const numbers = [1, 2, 3] ;

console.log(sum(...numbers)) ; // 6

Trois points dans des cas d'utilisation réels

Copier un tableau

La syntaxe d'étalement va effectivement un niveau plus loin lors de la copie d'un tableau. Un niveau signifie que le premier niveau de références est copié.

const array0 = [1, [2, 3]] ;
const array1 = [...array0] ;

console.log(array1) ; // [1, [2, 3]]

Création d'un tableau d'éléments uniques

Créez un ensemble qui ne stocke que des éléments uniques et convertissez-le en tableau.

const array = [1, 1, 2, 3] ;
const uniqueElements = [...new Set(array)] ;

console.log(uniqueElements) ; // [1, 2, 3]

Concaténer des tableaux

const array0 = [1, 2] ;
const array1 = [3, 4] ;
const concated = [...array0, ...array1] ;

console.log(concated) ; // [1, 2, 3, 4]

Découpage d'un tableau

const [firstElement, ...newArray] = [1, 2, 3, 4] ;

console.log(firstElement) ; // 1
console.log(newArray) ; // [2, 3, 4]

Nous pouvons également retirer n les premiers éléments avec une virgule.

const [, , , ...newArray] = [1, 2, 3, 4] ;

console.log(newArray) ; // [4]

Insérer un tableau au début d'un autre tableau

const array0 = [4, 5, 6] ;
const array1 = [1, 2, 3] ;
const newArray = [...array1, ...array0] ;

console.log(newArray) ; // [ 1, 2, 3, 4, 5, 6 ]

Générer un tableau de nombres de 0 à n

const array = [...Array(10)].map((_, i) => i) ;

console.log(array) ; // [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ]

Déstructurer un objet

const { x, y, ...z } = { x : 1, y : 2, a : 3, b : 4 } ;

console.log(x) ; // 1
console.log(y) ; // 2
console.log(z) ; // { a : 3, b : 4 }

Créer une copie d'un objet

let person = {
  nom : 'John',
  âge : 25,
  portefeuille : {
    somme : 500,
    devise : "USD
  }
} ;
let personCopy = { ...person } ;

console.log(personCopy) ;
// {
// nom : 'John',
// âge : 25,
// portefeuille : {
// somme : 500,
// devise : "USD
// }
// }

Notez que la copie de l'objet qui est créée est un nouvel objet qui possède toutes les propriétés de l'objet original mais aucune de ses informations prototypiques.

personne.âge = 20 ;

console.log(person.age) ; // 20
console.log(personCopy.age) ; // 25

Notez que la syntaxe de diffusion crée une copie "superficielle" de l'objet, de sorte que la propriété "wallet" sera copiée uniquement en tant que référence au sous-objet d'origine. Pour un clonage en profondeur, vous pouvez utiliser l'approche JSON stringify/parse ou la méthode "cloneDeep" fournie par Lodash, en fonction de la complexité de votre objet. Dans certains cas, cette méthode peut également s'avérer utile :

let personCopy = { ...person, wallet = {...person.wallet}} ; 

Ajout conditionnel de propriétés aux objets

Nous pouvons ajouter de manière conditionnelle des propriétés à un nouvel objet que nous créons en utilisant l'opérateur d'étalement ainsi que l'évaluation de court-circuit.

const colors = {
  red : '#ff0000',
  vert : '#00ff00',
  bleu : '#0000ff'
} ;
const black = {
  noir : '#000000'
} ;

let extraBlack = false ;
let conditionalMerge = {
  ... couleurs,
  ...(extraNoir ? noir : {})
} ;

console.log(conditionalMerge) ;
// {
// red : '#ff0000',
// vert : '#00ff00',
// bleu : '#0000ff'
// }

extraBlack = true ;
conditionalMerge = {
  ...couleurs,
  ...(extraNoir ? noir : {})
} ;

console.log(conditionalMerge) ;
// {
// red : '#ff0000',
// vert : '#00ff00',
// bleu : '#0000ff'
// noir : "#000000
// }

Découpage d'une chaîne en caractères

Cela revient à appeler la méthode "split" avec une chaîne vide comme paramètre.

const split = [... 'qwerty'] ;
console.log(split) ; // [ 'q', 'w', 'e', 'r', 't', 'y' ]

Conseil en développement de produits numériques

En savoir plus :

3 défis communs au développement de produits logiciels pour les startups

Le meilleur type de projets pour Java

Comment ne pas tuer un projet avec de mauvaises pratiques de codage ?

Articles connexes

Développement de logiciels

Construire des applications web à l'épreuve du temps : les conseils de l'équipe d'experts de The Codest

Découvrez comment The Codest excelle dans la création d'applications web évolutives et interactives à l'aide de technologies de pointe, offrant une expérience utilisateur transparente sur toutes les plateformes. Découvrez comment notre expertise favorise la transformation numérique et la...

LE CODEST
Développement de logiciels

Les 10 premières entreprises de développement de logiciels basées en Lettonie

Découvrez les principales sociétés de développement de logiciels en Lettonie et leurs solutions innovantes dans notre dernier article. Découvrez comment ces leaders de la technologie peuvent vous aider à développer votre entreprise.

thecodest
Solutions pour les entreprises et les grandes entreprises

L'essentiel du développement de logiciels Java : Un guide pour une externalisation réussie

Explorez ce guide essentiel sur le développement réussi de logiciels Java outsourcing pour améliorer l'efficacité, accéder à l'expertise et assurer la réussite des projets avec The Codest.

thecodest
Développement de logiciels

Le guide ultime de l'externalisation en Pologne

L'essor de outsourcing en Pologne est dû aux progrès économiques, éducatifs et technologiques, qui favorisent la croissance des technologies de l'information et un climat propice aux entreprises.

TheCodest
Solutions pour les entreprises et les grandes entreprises

Le guide complet des outils et techniques d'audit informatique

Les audits informatiques garantissent la sécurité, l'efficacité et la conformité des systèmes. Pour en savoir plus sur leur importance, lisez l'article complet.

The Codest
Jakub Jakubowicz CTO & Co-Fondateur

Abonnez-vous à notre base de connaissances et restez au courant de l'expertise du secteur des technologies de l'information.

    A propos de nous

    The Codest - Entreprise internationale de développement de logiciels avec des centres technologiques en Pologne.

    Royaume-Uni - Siège

    • Bureau 303B, 182-184 High Street North E6 2JA
      Londres, Angleterre

    Pologne - Les pôles technologiques locaux

    • Parc de bureaux Fabryczna, Aleja
      Pokoju 18, 31-564 Kraków
    • Brain Embassy, Konstruktorska
      11, 02-673 Varsovie, Pologne

      The Codest

    • Accueil
    • A propos de nous
    • Services
    • Études de cas
    • Savoir comment
    • Carrières
    • Dictionnaire

      Services

    • Conseil consultatif
    • Développement de logiciels
    • Développement backend
    • Développement frontal
    • Staff Augmentation
    • Développeurs backend
    • Ingénieurs en informatique dématérialisée
    • Ingénieurs des données
    • Autres
    • Ingénieurs AQ

      Ressources

    • Faits et mythes concernant la coopération avec un partenaire externe de développement de logiciels
    • Des États-Unis à l'Europe : Pourquoi les startups américaines décident-elles de se délocaliser en Europe ?
    • Comparaison des pôles de développement Tech Offshore : Tech Offshore Europe (Pologne), ASEAN (Philippines), Eurasie (Turquie)
    • Quels sont les principaux défis des CTO et des DSI ?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Conditions d'utilisation du site web

    Copyright © 2025 par The Codest. Tous droits réservés.

    fr_FRFrench
    en_USEnglish de_DEGerman sv_SESwedish da_DKDanish nb_NONorwegian fiFinnish pl_PLPolish arArabic it_ITItalian jaJapanese ko_KRKorean es_ESSpanish nl_NLDutch etEstonian elGreek fr_FRFrench