Simplification de script [Résolu]

Signaler
Messages postés
175
Date d'inscription
samedi 23 octobre 2004
Statut
Membre
Dernière intervention
8 mars 2015
-
Messages postés
175
Date d'inscription
samedi 23 octobre 2004
Statut
Membre
Dernière intervention
8 mars 2015
-
Bonjour à tous,

je suis intervenu ici il y a peu concernant un travail sur les array, j'ai fini par trouver une solution en bricolant le code ci-dessous qui fonctionne. Maintenant j'aimerais le simplifier, l'optimiser, car là je démultiplie les 'var tabTempX' mais je vais en avoir beaucoup, et donc j'aimerais faire une boucle, et la je n'y arrive pas
merci beaucoup pour votre aide

<table border="1px"><tr>
<td align="center">rang</td><td align="center">quantité</td></tr><tr>
<td align="center"><input type="text" id="rang0" value="" style="width:25px"></td><td align="center"><input type="text" id="compte0" value="0" style="width:25px"></td></tr><tr>
<td align="center"><input type="text" id="rang1" value="" style="width:25px"></td><td align="center"><input type="text" id="compte1" value="0" style="width:25px"></td></tr><tr>
<td align="center"><input type="text" id="rang2" value="" style="width:25px"></td><td align="center"><input type="text" id="compte2" value="0" style="width:25px"></td></tr><tr>
<td align="center"><input type="text" id="rang3" value="" style="width:25px"></td><td align="center"><input type="text" id="compte3" value="0" style="width:25px"></td></tr><tr>
<td align="center"><input type="text" id="rang4" value="" style="width:25px"></td><td align="center"><input type="text" id="compte4" value="0" style="width:25px"></td></tr><tr>

<script type="text/javascript">

var nombres1 = new Array(0,1,1,1,2,2,3,4);
var nombres2 = new Array(0,3,2,8,7,5,1,2);

for(var z=0;z<nombres1.length;z++){
while(nombres1[z]!=nombres1[z+1]){//alert('rang '+nombres1[z]);
document.getElementById('rang'+nombres1[z]).value = nombres1[z];
z++} }

var tabTemp0= new Array();
for(var z=0;z<nombres1.length;z++){
if(nombres1[z]==0){tabTemp0.push(nombres2[z]);}
var tot0 = 0;for (var i=0; i < tabTemp0.length;i++) {tot0 += Number(tabTemp0[i]);}document.getElementById('compte0').value =tot0;}

var tabTemp1= new Array();
for(var z=0;z<nombres1.length;z++){
if(nombres1[z]==1){tabTemp1.push(nombres2[z]);}
var tot1 = 0;for (var i=0; i < tabTemp1.length;i++) {tot1 += Number(tabTemp1[i]);}document.getElementById('compte1').value =tot1;}

var tabTemp2= new Array();
for(var z=0;z<nombres1.length;z++){
if(nombres1[z]==2){tabTemp2.push(nombres2[z]);}
var tot2 = 0;for (var i=0; i < tabTemp2.length;i++) {tot2 += Number(tabTemp2[i]);}document.getElementById('compte2').value =tot2;}

var tabTemp3= new Array();
for(var z=0;z<nombres1.length;z++){
if(nombres1[z]==3){tabTemp3.push(nombres2[z]);}
var tot3 = 0;for (var i=0; i < tabTemp3.length;i++) {tot3 += Number(tabTemp3[i]);}document.getElementById('compte3').value =tot3;}

var tabTemp4= new Array();
for(var z=0;z<nombres1.length;z++){
if(nombres1[z]==4){tabTemp4.push(nombres2[z]);}
var tot4 = 0;for (var i=0; i < tabTemp4.length;i++) {tot4 += Number(tabTemp4[i]);}document.getElementById('compte4').value =tot4;}


</script>


--

1 réponse

Messages postés
175
Date d'inscription
samedi 23 octobre 2004
Statut
Membre
Dernière intervention
8 mars 2015

C'est bon j'ai trouvé, pas mécontent, si des intéressés :

<table border="1px"><tr>
<td align="center">rang</td><td align="center">quantité</td></tr><tr>
<td align="center"><input type="text" id="rang0" value="" style="width:25px"></td><td align="center"><input type="text" id="compte0" value="0" style="width:25px"></td></tr><tr>
<td align="center"><input type="text" id="rang1" value="" style="width:25px"></td><td align="center"><input type="text" id="compte1" value="0" style="width:25px"></td></tr><tr>
<td align="center"><input type="text" id="rang2" value="" style="width:25px"></td><td align="center"><input type="text" id="compte2" value="0" style="width:25px"></td></tr><tr>
<td align="center"><input type="text" id="rang3" value="" style="width:25px"></td><td align="center"><input type="text" id="compte3" value="0" style="width:25px"></td></tr><tr>
<td align="center"><input type="text" id="rang4" value="" style="width:25px"></td><td align="center"><input type="text" id="compte4" value="0" style="width:25px"></td></tr><tr>
<td align="center"><input type="text" id="rang5" value="" style="width:25px"></td><td align="center"><input type="text" id="compte5" value="0" style="width:25px"></td></tr><tr>

</table>

<script type="text/javascript">
var nombres1 = new Array(0,1,1,1,2,2,3,3,4,4,5);
var nombres2 = new Array(0,3,2,8,7,1,1,2,2,2,5);

for(var z=0;z<nombres1.length;z++){var e = 0;

var d = 'tabTemp'+nombres1[z];
var d= new Array();
for(var z=0;z<nombres1.length;z++){
document.getElementById('rang'+nombres1[z]).value = nombres1[z];
if(eval(e) != nombres1[z]){e=nombres1[z];d.length = 0;}
d.push(nombres2[z]);
var t ='tot'+nombres1[z];
//var t = 0;for (var i=0;i < d.length;i++) {t += Number(d[i]);
var t = 0;for (var i=0;i < d.length;i++) {t += Number(d[i]);

document.getElementById('compte'+nombres1[z]).value = t;//alert(t);
}
}
}
</script>



--