Bonjour,
Je vous sollicite car j'ai un petit problème à régler. En fait, je pense pouvoir m'en sortir, mais ce ne serait vraiment pas optimisé, donc je voudrais savoir si il existe quelque chose de plus simple, léger et subtil
Donc voilà, j'ai dans un tableau des données du type :
J'aimerais pouvoir récupérer la position des différentes horaires pour lesquelles il y a des enchevêtrement d'horaires : je m'explique ->
Code : Sélectionner tout - Visualiser dans une fenêtre à part var tabHoraires=["HoraireDebut1","HoraireFin1","HoraireDebut2","HoraireFin2", [...] "HoraireDebutn","HoraireFinn"]
Sois les horaires suivantes:
HoraireDebut - HoraireFin
1- 09h50 - 10h30
2- 10h50 - 12h10
3- 14h25 - 16h20
4- 11h15 - 17h15
Lecture des lignes:
1ère ligne: Ok
2ème ligne: Ok
3ème ligne: Ok
4ème ligne: Ah, je vois qu'une partie des horaires de la ligne 4 (11h15 - 17h15) sont déjà présentes dans la ligne 2 et 3 ( car 11h15 est compris entre 10h50 et 12h10, et que la plage 14h25- 16h20 est comprise dans la plage 11h15 - 17h15)
A ce moment, il faut que je récupère la positions des horaires erronées soit la position (dans le tableau) des horaires (10h50 - 12h10 / 14h25 - 16h20 / 11h15 - 17h15).
En fait, dès que j'ai un conflit dans une de mes périodes.
J'ai pensé à un tableau imbriqué dans un autre, comme ceci, mais j'ai des doutes sur son fonctionnement, et encore plus sur sa performance!
Je vous remercie pour toute l'aide que vous pourrez m'apporter!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 tabErreurs=[] for(var r=0;r<tabDate.length;r=r+2){ for(var k=0;k<tabDate.length;k=k+2){ if(r!=k){ if((tabDate[k]<tabDate[r+1] && tabDate[r+1]<tabDate[k+1]) || (tabDate[k]<tabDate[r] && tabDate[r]<tabDate[k+1])){ tabErreurs.push(k) tabErreurs.push(r) } } } }
Partager