IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Initialisation variables ou tableau par tableau ?


Sujet :

JavaScript

  1. #1
    Membre averti Avatar de Pierre Maurette
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    283
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 283
    Points : 390
    Points
    390
    Par défaut Initialisation variables ou tableau par tableau ?
    Bonjour,
    J'initialisais mes tableaux de la façon suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [$usernickname, $username, $useremail] = $_[0].split('--');
    (c'est juste un exemple, réel, le membre de droite est un tableau de trois strings).
    Je pensais que ça fonctionnait, mais je viens de me rendre compte que ça plantait sous IE (IE11 et Edge). Le message était du genre "$usernickname undefined", j'ai essayé par curiosité d'initialiser les trois variables ( à '') préalablement, sans changement.
    Je suis donc passé à:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $__ = $_[0].split('--');
    $usernickname = $__[0];
    $username = $__[1];
    $useremail = $__[2];
    et bien entendu, ça fonctionne.
    Y a-t-il un moyen compact d'initialiser x variables par un tableau ?
    Merci et bonne journée.
    Pierre

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    En effet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [foo,bar,toc]=['a','b','c'];
    console.log(foo, bar, toc);
    passe bien sous FFX et Chrome...
    IE n'aime pas ...

    Un petit contournement avec un JSON
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var {one: foo, two: bar, three: toc} = {one: 'a', two: 'b', three:'c'};
    console.log(foo, bar, toc);
    )

  3. #3
    Membre averti Avatar de Pierre Maurette
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    283
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 283
    Points : 390
    Points
    390
    Par défaut
    Merci de votre intérêt.
    A partir des messages de mon EDI (PhpStorm) j'ai pu donner un nom à cette pratique: "destructuring assignment" ou "affectation par décomposition". Ce qui amène à la doc MDN. Où on apprend que effectivement ce n'est pas implémenté pour IE, ni pour Edge à moins de positionner un flag. Donc inutilisable.
    Je considère la question comme étant résolue.

  4. #4
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    C'est de l'ECMAScript 6, la dernière norme JavaScript. Tu as les infos de compatibilité ici : http://kangax.github.io/compat-table/es6/ ; comme tu vois avec IE c'est pas la joie.

    Mais il y a un moyen d'utiliser cette syntaxe, c'est d'utiliser un transpilateur : un programme qui convertit ton code ES6 en ES5 supporté par IE. Le plus connu est Babel ; si tu veux te former à la dernière norme du langage en utilisant des outils modernes tout en assurant le support sur les navigateurs plus vieux, cet outil est fait pour toi.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Initialiser la taille d'un tableau par une fenetre graphique
    Par phil1289 dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 16/09/2014, 16h51
  2. [XL-2003] incrémentation d'une variable d'un tableau par une autre variable
    Par babar69 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 07/04/2011, 10h52
  3. [XL-2002] Alimentation d'une variable tableau par userform
    Par Troudz dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 08/02/2011, 15h45
  4. Problème d'initialisation variable tableau
    Par HeZiX dans le forum Langage
    Réponses: 3
    Dernier message: 08/06/2005, 16h30
  5. [] Tri d'un tableau par ordre alphabétique
    Par cafeine dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 17/09/2002, 08h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo