Comparaison éléments dans un même tableau
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 :
Code:
var tabHoraires=["HoraireDebut1","HoraireFin1","HoraireDebut2","HoraireFin2", [...] "HoraireDebutn","HoraireFinn"]
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 ->
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!
Code:
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)
}
}
}
} |
Je vous remercie pour toute l'aide que vous pourrez m'apporter!