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 :

comment definir un array undefined


Sujet :

JavaScript

  1. #1
    Membre �clair�
    Profil pro
    Inscrit en
    D�cembre 2007
    Messages
    478
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : D�cembre 2007
    Messages : 478
    Par d�faut comment definir un array undefined
    Bonjour,

    Je vais essayer de m'expliquer, desole je ne suis pas informaticien et je ne possede pas le vocabulaire adequate

    j'ai un array avec un nombre de valeurs numerique (1,2,3,etc...) a l'interieurs qui change en permanence.

    je cherche a faire une fonction pour que si une des valeur n'existe pas elle utilise la valeur du premier element de l'array.

    j'ai essaye les combinaisons suivantes mais meme si j'ai une valeur dans long[1] il me la trasforme quand meme en long[0].
    Comment definir une variable long[2] alors que le dernier element de mon array serait long[1]



    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    if (long[1] !== '0') { 
    long[1] = long[0];
    }
    ou encore
    if (long[1] !== 'undefined') { 
    long[1] = long[0];
    }
    j'ai aussi essaye (toujours sans succes)

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    if (long[1] > 0) { 
    break;
    else
    long[1] = long[0];

    Merci de votre aide

  2. #2
    Inactif  

    Profil pro
    Inscrit en
    Mai 2010
    Messages
    345
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 345
    Par d�faut
    Citation Envoy� par voyageurdumonde Voir le message
    Bonjour,

    Je vais essayer de m'expliquer, desole je ne suis pas informaticien et je ne possede pas le vocabulaire adequate

    j'ai un array avec un nombre de valeurs numerique (1,2,3,etc...) a l'interieurs qui change en permanence.

    je cherche a faire une fonction pour que si une des valeur n'existe pas elle utilise la valeur du premier element de l'array.

    j'ai essaye les combinaisons suivantes mais meme si j'ai une valeur dans long[1] il me la trasforme quand meme en long[0].
    Comment definir une variable long[2] alors que le dernier element de mon array serait long[1]



    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    if (long[1] !== '0') { 
    long[1] = long[0];
    }
    ou encore
    if (long[1] !== 'undefined') { 
    long[1] = long[0];
    }
    j'ai aussi essaye (toujours sans succes)

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    if (long[1] > 0) { 
    break;
    else
    long[1] = long[0];

    Merci de votre aide
    pour tester si une variable est nulle ou n'est pas d�finie en javascript tu as 3 m�thodes :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    if(mavar!=null) {
     
    }
    // OU
    if(typeof mavar == 'undefined') {
     
    }
    // OU plus simplement
    if(!mavar) {
     //si mavar est null ou chaine vide "" la condition sera true
    }
    Ben oui, toi tu testais si mavar!='undefined', mais tu ne faisais que tester une variable avec une chaine de caract�res d'ou l'utilisation du typeof, mais je pr�f�re la 3�me m�thode qui est plus simple.

    Maintenant pour modifier ton tableau en question il suffit simplement de le parcourir avec une boucle et de faire le test ad�quat.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
     
    //en javascript un tableau commence à 0 et fini à longueur-1, mais comme 
    //ici on saut que 0 n'est pas une valeur vide, alors on n'a pas besoin de commencer par zéro.
    for (var i=1; i<long.length; i++) {
       if(!long[i]) {
           long[i] = long[0];
       }
    }

  3. #3
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POO�te
    Inscrit en
    Avril 2008
    Messages
    2 652
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activit� : POO�te

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par d�faut
    Si tu dois faire cette v�rification pour l'ensemble des �l�ments de ton tableau :
    Code javascript : S�lectionner tout - Visualiser dans une fen�tre � part
    for (var i = 0, iMax = long.length; ++i) long[i] = long[i] || long[0];
    C'est une notation qui est devenue assez courante pour attribuer une valeur par d�faut, courte et lisible.

    edit : attention ce code contient une erreur (corrig�e plus bas, merci au vigilant dukej )

  4. #4
    Inactif  

    Profil pro
    Inscrit en
    Mai 2010
    Messages
    345
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 345
    Par d�faut
    Citation Envoy� par RomainVALERI Voir le message
    Si tu dois faire cette v�rification pour l'ensemble des �l�ments de ton tableau :
    Code javascript : S�lectionner tout - Visualiser dans une fen�tre � part
    for (var i = 0, iMax = long.length; ++i) long[i] = long[i] || long[0];
    C'est une notation qui est devenue assez courante pour attribuer une valeur par d�faut, courte et lisible.
    y a une erreur dans ton for
    Et doucement avec le monsieur, il a dit qu'il n'�tait pas informaticien, si tu viens lui balancer les notations all�gers de type
    var = var || "newvalue";
    il va pas comprendre

  5. #5
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POO�te
    Inscrit en
    Avril 2008
    Messages
    2 652
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activit� : POO�te

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par d�faut
    Citation Envoy� par dukej Voir le message
    y a une erreur dans ton for
    Merci pour la relecture
    >>> Au temps pour moi je suis all� trop vite
    Code javascript : S�lectionner tout - Visualiser dans une fen�tre � part
    for (var i = 0, iMax = long.length; i < iMax; ++i) long[i] = long[i] || long[0];

  6. #6
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POO�te
    Inscrit en
    Avril 2008
    Messages
    2 652
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activit� : POO�te

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par d�faut
    Citation Envoy� par dukej Voir le message
    le monsieur, il a dit qu'il n'�tait pas informaticien, si tu viens lui balancer les notations all�gers de type
    var = var || "newvalue";
    il va pas comprendre
    Bah, on aurait pu faire + compact et - clair
    Code javascript : S�lectionner tout - Visualiser dans une fen�tre � part
    for(var i=0,j=long.length;i<j;++i)long[i]||long[i]=long[0];

  7. #7
    Inactif  

    Profil pro
    Inscrit en
    Mai 2010
    Messages
    345
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 345
    Par d�faut
    Citation Envoy� par RomainVALERI Voir le message
    Bah, on aurait pu faire + compact et - clair
    Code javascript : S�lectionner tout - Visualiser dans une fen�tre � part
    for(var i=0,j=long.length;i<j;++i)long[i]||long[i]=long[0];
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    var i=-1;while(++i<long.length)long[i]||long[i]=long[0]
    ??

  8. #8
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POO�te
    Inscrit en
    Avril 2008
    Messages
    2 652
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activit� : POO�te

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par d�faut
    Citation Envoy� par dukej Voir le message
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    var i=-1;while(++i<long.length)long[i]||long[i]=long[0]
    ??
    mouarf ! ^^ oui j'avais h�sit� � passer par le while, mais je ne voulais qu'une instruction :p

  9. #9
    Membre �clair�
    Profil pro
    Inscrit en
    D�cembre 2007
    Messages
    478
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : D�cembre 2007
    Messages : 478
    Par d�faut
    Merci pour tous ces renseignements, je vais regarder cela ce soir en rentrant du travail

  10. #10
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POO�te
    Inscrit en
    Avril 2008
    Messages
    2 652
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activit� : POO�te

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par d�faut
    Un d�tail me frappe apr�s coup : �vite d'appeler ton tableau "long", c'est un mot r�serv� en JS. ^^
    Ce ne pose pas de probl�me aujourd'hui, mais par principe il vaut mieux l'�viter, ce n'est pas m�chant de renommer "long" en "tlong" ou "t_long" ou "l" ou "choucrouteGarnieAuxOlivesBraisees", et �a t'�vitera d'avoir un de ces jours un probl�me de compatiblit�, quand ce probl�me et cette impl�mentation particuli�re te seront compl�tement sortis de l'esprit et que la norme ECMA �voluera

  11. #11
    Inactif  

    Profil pro
    Inscrit en
    Mai 2010
    Messages
    345
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 345
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    for(var i=0,l=long,i<l.length;++i)l[i]||l[i]=l[0];

  12. #12
    Membre �clair�
    Profil pro
    Inscrit en
    D�cembre 2007
    Messages
    478
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : D�cembre 2007
    Messages : 478
    Par d�faut
    Merci pour tous ces renseignements, je n'ai que l'embarra du choix.
    Merci pour l'info RomainVALERI.

  13. #13
    Expert confirm�
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Ao�t 2003
    Messages
    3 684
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activit� : danseur

    Informations forums :
    Inscription : Ao�t 2003
    Messages : 3 684
    Par d�faut
    ou m�me

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    for(i in t) t[i]=t[i] || t[0];

  14. #14
    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 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    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 659
    Billets dans le blog
    1
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    var i=0;
    while(!(t[++i]) && (t[i]=t[0]));
    Ma page Developpez - Mon Blog Developpez
    Pr�sident du CCMPTP (Comit� Contre le Mot "Probl�me" dans les Titres de Posts)
    Deux r�gles du succ�s: 1) Ne communiquez jamais � quelqu'un tout votre savoir...
    Votre post est r�solu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de D�veloppez !

  15. #15
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POO�te
    Inscrit en
    Avril 2008
    Messages
    2 652
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activit� : POO�te

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par d�faut
    dukej, fais gaffe...

    notre petit repas improvis� a attir� des grands fauves
    (et bravo les gars, encore un effort on approche du code parfait : 0 caract�res ! ^^)

  16. #16
    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 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    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 659
    Billets dans le blog
    1
    Par d�faut
    juste pour r�integrer l'initialisation de i sur la m�me ligne
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    for(i=1;!t[i] && (t[i]=t[0]);t[++i]){}
    une grenouille grand fauve ???
    Ma page Developpez - Mon Blog Developpez
    Pr�sident du CCMPTP (Comit� Contre le Mot "Probl�me" dans les Titres de Posts)
    Deux r�gles du succ�s: 1) Ne communiquez jamais � quelqu'un tout votre savoir...
    Votre post est r�solu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de D�veloppez !

  17. #17
    Inactif  

    Profil pro
    Inscrit en
    Mai 2010
    Messages
    345
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 345
    Par d�faut
    Citation Envoy� par SpaceFrog Voir le message
    juste pour r�integrer l'initialisation de i sur la m�me ligne
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    for(i=1;!t[i] && (t[i]=t[0]);t[++i]){}
    une grenouille grand fauve ???
    et une m�thode avec map ?
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
     
    array = array.map(function(v,i,arr) {
      return v || arr[0];
    })

  18. #18
    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 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    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 659
    Billets dans le blog
    1
    Par d�faut
    il te faut definir le prototype map avant qui n'existe pas en javascript
    Ma page Developpez - Mon Blog Developpez
    Pr�sident du CCMPTP (Comit� Contre le Mot "Probl�me" dans les Titres de Posts)
    Deux r�gles du succ�s: 1) Ne communiquez jamais � quelqu'un tout votre savoir...
    Votre post est r�solu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de D�veloppez !

  19. #19
    Inactif  

    Profil pro
    Inscrit en
    Mai 2010
    Messages
    345
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 345
    Par d�faut
    Citation Envoy� par SpaceFrog Voir le message
    il te faut definir le prototype map avant qui n'existe pas en javascript
    Et si l'array n'est que compos� de string
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
    var sep = '$SEP$';
    arr = arr.join(sep).replace(new RegExp(sep+sep,'g'), sep+arr[0]+sep).split(sep);
    j'ai bon ?

  20. #20
    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 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    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 659
    Billets dans le blog
    1
    Par d�faut
    curieusement non il renseigne un vide sur deux ...
    vu que il les prend par paire ...
    Ma page Developpez - Mon Blog Developpez
    Pr�sident du CCMPTP (Comit� Contre le Mot "Probl�me" dans les Titres de Posts)
    Deux r�gles du succ�s: 1) Ne communiquez jamais � quelqu'un tout votre savoir...
    Votre post est r�solu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de D�veloppez !

+ R�pondre � la discussion
Cette discussion est r�solue.
Page 1 sur 2 12 Derni�reDerni�re

Discussions similaires

  1. R�ponses: 5
    Dernier message: 24/05/2005, 12h31
  2. R�ponses: 2
    Dernier message: 02/05/2005, 11h57
  3. R�ponses: 7
    Dernier message: 11/04/2005, 22h23
  4. Comment definir un string java en c++
    Par chelguera dans le forum C++
    R�ponses: 13
    Dernier message: 31/12/2004, 12h56
  5. [SQLClientDataSet] comment definir un index ?
    Par kase74 dans le forum Bases de donn�es
    R�ponses: 1
    Dernier message: 29/09/2004, 14h14

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