JavaScript - ¡Suma de arrays! problema

 
Vista:
Imágen de perfil de Gio

¡Suma de arrays! problema

Publicado por Gio (2 intervenciones) el 13/09/2016 00:25:18
HOLA COMUNIDAD:

TENGO UN PROBLEMA A LA HORA DE IMPRIMIR UN RESULTADO EN UN <OUTPUT> PERO EL ERROR ES EN EL JS YA QUE NO ME SUMA BIEN LOS ARRAYs NO SE SI ESTO ESTE BIEN: ....arreglo[2] = arreglo[2] + sl;

En la función wle, linea 83.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
function update(team1,team2,team3,team4,n) {
 
	var p = "p";
	var s = "s";
	var t = "t";
	var c = "c";
 
 
	var scbl = document.getElementById('sl').value;
	var scbv = document.getElementById('sv').value;
 
 
	if(n==0){
 
		wle(team1,team2,scbl,scbv);
		show(team1,team2,p,s,scbl,scbv,1);
 
	}
	if(n==1){
 
		wle(team3,team4,scbl,scbv);
		show(team3,team4,t,c,scbl,scbv,3);
 
	}
	if(n==2){
 
		wle(team2,team1,scbl,scbv);
		show(team2,team1,s,p,scbl,scbv,5);
	}
	if(n==3){
 
		wle(team4,team3,scbl,scbv);
		show(team4,team3,c,t,scbl,scbv,7);
	}
	if(n==4){
 
		wle(team1,team3,scbl,scbv);
		show(team1,team3,p,t,scbl,scbv,9);
	}
	if(n==5){
 
		wle(team2,team4,scbl,scbv);
		show(team2,team4,s,c,scbl,scbv,11);
	}
	if(n==6){
 
		wle(team3,team1,scbl,scbv);
		show(team3,team1,t,p,scbl,scbv,13);
	}
	if(n==7){
 
		wle(team4,team2,scbl,sscbv);
		show(team4,team2,c,s,scbl,scbv,15);
	}
	if(n==8){
 
		wle(team1,team4,scbl,scbv);
		show(team1,teamc,p,c,scbl,scbv,17);
	}
	if(n==9){
 
		wle(team2,team3,scbl,scbv);
		show(team2,team3,s,t,scbl,scbv,19);
	}
	if(n==10){
 
		wle(team4,team1,scbl,sv);
		show(team4,team1,c,p,scbl,scbv,21);
	}
	if(n==11){
 
		wle(team3,team2,scbl,scbv);
		show(team3,team2,t,s,scbl,scbv,23);
	}
 
 
	n++;
 
 
	//getElementById('update').disabled=true;
}
 
function wle(a, b, sl, sv){
 
 
 
		if(sl>sv){
			a[1]+= 3;
			a[2]+= a[2] + sl;
			a[3]+= a[2] - sv;
 
			b[2]+= sv;
			b[3]+= (b[2] - sl);
 
 
		}
		if(sl<sv){
			b[1] = b[1] + 3;
			b[2] = b[2] + sv;
			b[3] = b[3] + (b[2] - sl);
 
			a[2] = a[2] + sl;
			a[3] = a[3] + (a[2] - sv);
 
 
		}
		if(sl==sv){
				a[1] = a[1] + 1;
				b[1] = b[1] + 1;
 
				a[2] = a[2] + sl;
				b[2] = b[2] + sv;
 
				a[3] = a[3] + (a[2] - sv);
				b[3] = b[3] + (b[2] - sl);
			}
 
 
	}
 
	function show(a,b,id1,id2,scl,scv,k){
 
		for(var i=0;i<=3;i++){
 
			document.getElementById(''+id1+''+i+'').value = a[i];  //Estoy concatenando  ya que los id="p0"....."id=p3"
			document.getElementById(''+id2+''+i+'').value = b[i];
 
		}
		document.getElementById('me'+k+'').value = scl;
		document.getElementById('me'+(k+1)+'').value = scv;
 
	}

DONDE LO IMPRIMO:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<div class="tabla">
 
		<div class="tab_main">
			<div class="val"><p class="nc">POS.</p></div>
			<div class="team"><p class="nc">EQUIPO</p></div>
			<div class="val"><p class="nc">PTS.</p></div>
			<div class="val"><p class="nc">GOL</p></div>
			<div class="val"><p class="nc">DG</p></div>
		</div>
 
		<div class="tab_val">
			<div class="val">1</div>
			<div class="team"><output id="p0"></output></div>
			<div class="val"><output id="p1"></output></div>
			<div class="val"><output id="p2"></output></div>
			<div class="val"><output id="p3"></output></div>
 
		</div>

RESULTADO:

En el segundo cuadro los PTS y DG el resultado está correcto pero en GOL (primero y segunda celda) y DG de la primera no.

UNO

Ya que esta es añadiendo números y no sumando todo. (Al actualizar nuevamente)


DOS



GRACIAS.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alain
Val: 26
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

¡Suma de arrays! problema

Publicado por Alain (8 intervenciones) el 13/09/2016 22:12:24
Hola, creo que debes revisar que a la hora de sumar los tipos de datos sean int, porque si lo que llega son caracteres lo que hace es concatenar. Por ejemplo:
var a = new Array();
a[0] = "0";
a[0] += 2;
console.log(a[0]);

Muestra 02

Pero si fuera
var a = new Array();
a[0] = 0;
a[0] += 2;
console.log(a[0]);

Muestra 2.

Puedes usar la funcion parseInt para convertir a int

var a = new Array();
a[0] = parseInt("0");
a[0] += 2;
console.log(a[0]);

Mostraría 2. Espero te ayude. Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar