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 :

Utilisation de la méthode indexOf()


Sujet :

JavaScript

  1. #1
    Membre habitué Avatar de legrandse
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Décembre 2010
    Messages
    350
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Décembre 2010
    Messages : 350
    Points : 149
    Points
    149
    Par défaut Utilisation de la méthode indexOf()
    Bonjour à tous,

    Je fais pas mal de bricolages de code parfois seul et parfois avec l'aide du forum (majoritairement en php).

    N'étant pas développeur de formation, je souhaiterais une aide à la compréhension d'un petit code que j'ai récupéré afin de l'adapter à mon futur projet.

    Ce dernier affiche un calendrier avec des jours libres et/ou occupés :

    Voici ce que je ne comprend pas: pourquoi doit-on utiliser indexOf(date.getDate())
    et pourquoi doit-il être > -1

    En vous remerciant pour l'aide

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    <html>
    <head>
    <script>
     var activeDays=[1,4,10,21,22,23,27,28,30];
     
     
    $(function() {
    $('#datepicker').datepicker(
        {
            beforeShowDay: function(date) {
                var events = [true,''];
     
                if ( activeDays.indexOf(date.getDate())  > -1) 
                {
                    events = [false,''];
                }
     
                return events;
            }
        }
    );
    });
     </script>
    </head>
    <body>
     
    <div id="datepicker"></div>
     
     
    </body>
    </html>

  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 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    indexOf retourne la position de l'élément recherché ...
    il retourne -1 si il ne le trouve pas

  3. #3
    Membre habitué Avatar de legrandse
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Décembre 2010
    Messages
    350
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Décembre 2010
    Messages : 350
    Points : 149
    Points
    149
    Par défaut
    Merci pour le début de l'aide.

    Désolé pour certaines imprécisions il s'agit du jquery UI datepicker.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
      <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
    En fait je n'arrive pas à traduire dans ma tête l'instruction du également au manque de connaissance de l'écriture du langage.

    en prenant cette ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ( activeDays.indexOf(date.getDate())  > -1)
    Je cale dès l'activeDays car je traduis comme ceci : si l'array activeDays qui comprend entre autre le chiffre 23...(ensuite je ne vois pas clair)
    date.getDate() retourne la date du jour (jj) ou bien je me trompe ?

    indexOf(date.getDate()) doit retourner la position de la date du jour et le comparer au contenu de l'array c'est bien cela ?

  4. #4
    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 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    alert("abc".indexOf('a') );
    alert("abc".indexOf('c') );
    alert("abc".indexOf('d') );
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alert("abc".indexOf('z') );

  5. #5
    Membre habitué Avatar de legrandse
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Décembre 2010
    Messages
    350
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Décembre 2010
    Messages : 350
    Points : 149
    Points
    149
    Par défaut
    Oui donc dans mon cas, ce sera: cherche "traduit par (indexOf)" 26 "traduit par(date.getDate())" dans l'array qui contient 1,4,10,21,22,23,27,28,30
    En fonction de ce qu'il trouve il retourne -1 ou 0

    Comme il s'agit d'un calendrier la fonction va "griser" les dates se trouvant dans l'array.

    Vous allez peut-être vouloir me frapper mais comment est-ce que la fonction parcours tout le mois car getDate() ne retourne que la date du jour ?

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    1-
    Citation Envoyé par legrandse Voir le message
    ...date.getDate() retourne la date du jour (jj) ou bien je me trompe ?...
    En JavaScript, 2 façons de vérifier (ce que contiennent les variables,...) :

    Et quand on ne connais pas (une fonction,...), on CHERCHE : ... et on TROUVE.


    2-
    ...(indexOf)...
    En fonction de ce qu'il trouve il retourne -1 ou 0
    NON !
    LIS la doc : indexOf()


    3- .
    ..comment est-ce que la fonction parcours tout le mois... ?...
    Voir la documentation Datepicker :

    Notamment ici : beforeShowDay
    ...The function is called for each day in the datepicker before it is displayed...

    ... La fonction est appelée pour chaque jour dans la datepicker avant qu'elle ne soit affichée ...
    Voilà ta "boucle".
    Dernière modification par Invité ; 26/07/2018 à 16h40.

  7. #7
    Membre expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 886
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 886
    Points : 3 725
    Points
    3 725
    Par défaut
    Citation Envoyé par legrandse Voir le message
    ...Vous allez peut-être vouloir me frapper mais comment est-ce que la fonction parcours tout le mois car getDate() ne retourne que la date du jour ?
    Ben apparemment cette fonction ne parcourt pas tout le mois, elle renvoie une réponse uniquement pour la date fournie en argument... Pour parcourir tout le mois je suppose qu'elle est exécutée plusieurs fois avec l'argument "date" qui doit varier du premier jour au dernier jour du mois...

    D'ailleurs jreaux62 a mentionné ceci :
    ...The function is called for each day in the datepicker before it is displayed...

  8. #8
    Membre habitué Avatar de legrandse
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Décembre 2010
    Messages
    350
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Décembre 2010
    Messages : 350
    Points : 149
    Points
    149
    Par défaut
    J'ai effectué quelques essais pour comprendre indexOf.

    Mais c'est l'explication du beforeShowDay qui a fait que je comprenne globalement la fonction.

    Merci pour vos interventions

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 10/04/2007, 16h26
  2. Réponses: 20
    Dernier message: 19/09/2006, 20h52
  3. Utilisation de la méthode FIND
    Par Jeannot45 dans le forum Access
    Réponses: 3
    Dernier message: 09/01/2006, 15h41
  4. [Ant] Utilisation de la méthode clone()
    Par Shabata dans le forum ANT
    Réponses: 1
    Dernier message: 01/12/2005, 15h01
  5. [Select()/Focus()] Pb dans l'utilisation de ces méthodes
    Par Kylen dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 23/06/2005, 14h54

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