Simplification de script

Résolu
tonytruand Messages postés 175 Date d'inscription samedi 23 octobre 2004 Statut Membre Dernière intervention 8 mars 2015 - 8 mars 2015 à 09:33
tonytruand Messages postés 175 Date d'inscription samedi 23 octobre 2004 Statut Membre Dernière intervention 8 mars 2015 - 8 mars 2015 à 13:31
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

tonytruand Messages postés 175 Date d'inscription samedi 23 octobre 2004 Statut Membre Dernière intervention 8 mars 2015
8 mars 2015 à 13:31
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>



--
0
Rejoignez-nous