Bonjour,
Je fais des révisions en algo et je vois que j'en ai bien besoin. Mon problème, j'aimerais comparer une valeur d'un tableau de nombres entiers à toutes les autres de ce même tableau selon le schéma suivant .
Soit le tableau :
1 2
|
const tabInt=[10,8,9,7,15,14,6,4] |
Tant que le 1er élement (10) est supérieur à tous les autres éléments qui suivent dans le tableau, alors je stocke ces éléments dans un autre tableau et je stoppe dès le premier élément supérieur à 10 (15 ici). Ainsi je devrais récupérer le tableau qui suit :
1 2 3
|
//10 étant supérieur à 8,9 et 7 je récupère ces éléments
const newTab=[8,9,7] |
Je voudrais appliquer ce test à tous les autres éléments du tableau tabInt : "tant que le 2ème élement est supérieur (8)...même démarche.
Je pensais m'en sortir comme ceci avec une imbrication (code js) :
1 2 3 4 5 6 7 8 9 10 11
|
for(let i=0; i<tabInt.length;i++) {
let sliceTab=tabInt.slice(i+1);
for(let j = 0; j<sliceTab.length; j++) {
if(tabInt[i]>sliceTab[j]) {
newTab.push(sliceTab[i]])
}
break;
}
} |
Ce code a l'inconvénient de ne pas stopper à la valeur 15 au 1er tour et de retourner le tableau :
[8, 9, 7, 6, 4, 7, 6, 4, 7, 6, 4, 6, 4, 14, 6, 4, 6, 4, 4]
Normal me direz-vous le if reprend sa course dès lors que le test de comparaison est à nouveau vérifié...Je pourrais utiliser un break, mais cela créé d'autres inconvénients :
je ne récupère par la valeur 9 au 1er tour vu que le breqk doit casser à la comparaison entre 8et 9.
In fine je voudrais obtenir ceci :
1 2 3
|
const newTab=[8,9,7],
const newTab2=[14,6,4] |
Un coup de pouce serait le bienvenu, merci à vous
Partager