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 :

Retour booléen sur un ordre croissant


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2020
    Messages : 4
    Points : 4
    Points
    4
    Par défaut Retour booléen sur un ordre croissant
    Bonjour a tous,
    Je suis bloqué sur un petit problème : je doit réaliser un algorithme dans le but de détecter une chaine de caractères dans une autre et ce, dans le bon ordre.
    Ma question est : est-il possible de poser une condition pour savoir si un tableau est bien classé dans l'ordre croissant, si oui retourner == true si non retourner == false ?

    Je vous copie mon code actuellement il me sort le tableau en console avec les indexs des caractères dans les différentes chaines de caractères.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    let s1 ='abcd'
    let s21 ='jkvfvjkkjavkvfddkversbjfiojjoifqjoicjfrieojgoid'
    const ordr = []
     
    for(let value of s1){
      let row = s21.match(value)
      ordr.push(row.index)
    }
    console.table(ordr)

    PS : je débute dans mes études et je suis ouvert a toute critique.

    Merci à vous.

  2. #2
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Points : 6 755
    Points
    6 755
    Par défaut
    J’imagine que c’est plus compliqué qu’un simple appel à .includes()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    console.log( s21.includes(s1) );
    Si j’ai bien compris, tu cherches à savoir si la grande chaîne peut contenir les bouts de la petite chaîne mais avec d’autres trucs entre chaque bout ? Par exemple :
    C’est bien ça ?

    Ton algorithme part dans la bonne direction, mais le problème avec match est qu’il examine toute la chaîne s21 à chaque fois. Je pense qu’il faut utiliser une variable pour garder en mémoire l’indice du dernier caractère correspondant qu’on a trouvé. Tu peux alors passer cet indice en paramètre à .indexOf() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    let dernierIndice = -1;
    for (const value of s1) {
      dernierIndice = s21.indexOf(value, dernierIndice + 1);
      if (dernierIndice === -1) {
        return false;
      }
      else {
        ordr.push(dernierIndice);
      }
    }
     
    console.log(ordr);
    return true;
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2020
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    Merci effectivement c'est plus simple comme ça. J'ai juste changé les return et rajouter un if en sortie de boucle.

    Bonne soirée et merci pour vos lumières.

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

Discussions similaires

  1. [OpenOffice][Tableur] Comment trier numéros sur plusieurs colonnes par ordre croissant
    Par bordelaplage dans le forum OpenOffice & LibreOffice
    Réponses: 8
    Dernier message: 10/04/2015, 23h16
  2. Optimisation de tri de nombres sur plusieurs colonnes par ordre croissant
    Par jurassic pork dans le forum Général Python
    Réponses: 5
    Dernier message: 05/02/2015, 22h56
  3. Réponses: 4
    Dernier message: 20/06/2008, 11h45
  4. ordre croissant sur un formulaire
    Par yousron dans le forum IHM
    Réponses: 2
    Dernier message: 01/02/2007, 16h39
  5. Ordonner ds l'ordre croissant de 2 champs confondus
    Par Coolbens dans le forum Langage SQL
    Réponses: 11
    Dernier message: 17/06/2003, 16h39

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