Foros del Web » Programando para Internet » Javascript »

Como se pueden sumar varios elementos del mismo Array

Estas en el tema de Como se pueden sumar varios elementos del mismo Array en el foro de Javascript en Foros del Web. Saludos amigos, alguien sabe como puedo sumar varios elementos del mismo array. Gracias por su ayuda....
  #1 (permalink)  
Antiguo 06/11/2007, 17:15
 
Fecha de Ingreso: julio-2007
Ubicación: México DF
Mensajes: 57
Antigüedad: 17 años, 4 meses
Puntos: 4
Como se pueden sumar varios elementos del mismo Array

Saludos amigos, alguien sabe como puedo sumar varios elementos del mismo array.
Gracias por su ayuda.

Última edición por svengel; 12/11/2007 a las 19:02
  #2 (permalink)  
Antiguo 08/11/2007, 17:59
 
Fecha de Ingreso: julio-2007
Ubicación: México DF
Mensajes: 57
Antigüedad: 17 años, 4 meses
Puntos: 4
Re: Como se pueden sumar varios elementos del mismo Array

Aca pongo algo del codigo:

Gracias por su ayuda.



Cita:
Código:
 
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript" type="text/javascript">
function conprorroga(){
with (document.formulario){
var cp_i=menu1.value;
var cp_e=menu2.value;
 
 
var tasainteres = new Array()
tasainteres[316]=3.2;
tasainteres[317]=1.3;
tasainteres[318]=331;
tasainteres[319]=1.5;
tasainteres[320]=330;
tasainteres[321]=2;
tasainteres[322]=329;
tasainteres[323]=4;
tasainteres[324]=328;
tasainteres[325]=0.75;
tasainteres[326]=327;
tasainteres[327]=6;
tasainteres[328]=326;
tasainteres[329]=8;
tasainteres[330]=325;
tasainteres[331]=1;
tasainteres[332]=1;
 
for (var f=cp_i;f=cp_e;f++);
resultadofinalcp=resultado1.value;
resultadofinalcp+=tasainteres[f];
}
}
</script>
 
</head>
 
<body>
<form name="formulario">
<table width="500" border="0" align="center" cellpadding="0" cellspacing="0">
<tr> 
<td width="20">&nbsp;</td>
<td background="../img/novedades/mid_sup.gif">&nbsp;</td>
<td width="20">&nbsp;</td>
</tr>
<tr> 
<td rowspan="6" background="../img/novedades/mid_iz.gif">&nbsp;</td>
<td bgcolor="#FF6600" class="TITULO" >RECARGOS MENSUALES</td>
<td rowspan="6" background="../img/novedades/mid_der.gif">&nbsp;</td>
</tr>
<tr> 
<td bgcolor="#FFFFFF" >&nbsp;</td>
</tr>
<tr> 
<td bgcolor="#FFFFFF" class="TEXTO" ><strong>Con&nbsp; Pr&oacute;rroga </strong></td>
</tr>
<tr> 
<td bgcolor="#FFFFFF" class="TEXTO" >de 
<select id=slx1 name="menu1">
<option value=316>2007 Agosto</option>
<option value=317>2007 Julio</option>
<option value=318>2007 Junio</option>
<option value=319>2007 Mayo</option>
<option value=320>2007 Abril</option>
<option value=321>2007 Marzo</option>
<option value=322>2007 Febrero</option>
<option value=323>2007 Enero</option>
<option value=324>2006 Diciembre</option>
<option value=325>2006 Noviembre</option>
<option value=350>2006 Octubre</option>
<option value=351>2006 Septiembre</option>
<option value=352>2006 Agosto</option>
<option value=353>2006 Julio</option>
<option value=354>2006 Junio</option> ...
  #3 (permalink)  
Antiguo 08/11/2007, 23:59
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
Re: Como se pueden sumar varios elementos del mismo Array

Hola:

Supongo que si quieres sumar el array tasaintereses bastaría con algo así:
alert(eval(tasaintereses.join(" + "));

Aunque el array tal como está definido tendría 316 elementos nulos... tal vez para evitarlo te interese más indexarlo por las cadenas en vez de los números:

tasainteres["316"]=3.2; // fíjate en el entrecomillado...

...y de esa manera solo se crearían/usarían los elementos válidos... pruébalo y nos cuentas.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #4 (permalink)  
Antiguo 09/11/2007, 18:18
 
Fecha de Ingreso: julio-2007
Ubicación: México DF
Mensajes: 57
Antigüedad: 17 años, 4 meses
Puntos: 4
Re: Como se pueden sumar varios elementos del mismo Array

Claro!! de hecho se puede utilizar el metodo slice() para extraer la porcion del Array que quiero a otro Array y luego sumar todos sus elementos con eval(array.join("+")).
Deja lo pruebo y te digo.
Gracias Caricatos.
  #5 (permalink)  
Antiguo 12/11/2007, 19:00
 
Fecha de Ingreso: julio-2007
Ubicación: México DF
Mensajes: 57
Antigüedad: 17 años, 4 meses
Puntos: 4
Re: Como se pueden sumar varios elementos del mismo Array

Muchas Gracias Caricatos funciono a la perfección; para quin le interese aqui pongo el codigo que utilicé:
Saludos
Código PHP:
<script language="JavaScript" type="text/javascript">
<!--
//Relacionamos la seleccion de los menus a una variable.
function alcambiar(){  
  
with(document.formulario){
cp_1 1;
cp_1 += eval(select1.options[select1.selectedIndex].value);
cp_2 0;
cp_2 += eval(select2.options[select2.selectedIndex].value);
if(
cp_1<=cp_2){
alert("Primero debe seleccionar la fecha mas reciente");
}
}
 }
conprorroga = new Array('0''2.00''2.00''2.00''2.00''2.00''2.00''2.00''2.00''2.00''2.00''2.00''2.00''2.00''2.00''2.00''2.00''2.00''2.00''2.00''2.00''2.00''2.00''2.00''2.00''3.00''3.00''3.00''3.00''3.00''3.00''3.00''3.00''3.00''3.00''3.00''3.00''3.50''3.50''3.50''3.50''3.50''3.50''3.50''3.50''3.50''3.50''3.50''3.50''3.50''3.50''3.50''3.50''3.50''3.50''3.50''3.50''3.50''3.50''3.50''3.50''3.50''3.50''3.50''3.50''3.50''3.50''3.50''3.50''3.50''3.50''3.50''3.50''3.50''3.50''3.50''3.50''3.50''3.50''3.50''3.50''3.50''3.50''3.50''3.50''8.25''8.25''8.25''8.25''8.25''8.25''8.25''8.25''8.25''8.25''8.25''8.25''8.25''8.25''8.25''8.25''8.25''6.56''6.56''5.07''4.41''4.32''4.32''4.34''4.50''4.93''5.35''5.27''5.12''5.08''5.32''5.63''5.58''4.13''3.82''4.05''2.00''2.00''2.00''2.00''2.00''2.00''2.00''2.00''2.00''2.00''2.00''2.00''1.50''1.50''1.50''1.50''1.50''1.50''1.50''1.50''1.50''1.50''1.50''1.50''1.00''1.00''1.00''1.00''1.00''1.00''1.00''1.00''1.00''1.00''1.00''1.00''1.80''1.40''1.50''1.80''1.80''1.80''1.70''1.50''1.60''1.50''1.2''1.6''2.00''1.07''0.89''1.13''1.50''1.91''1.93''2.00''2.00''1.87''1.56''1.81''2.00''2.00''2.00''2.00''2.00''0.57''2.00''2.00''2.00''2.00''2.00''2.00''2.00''2.00''2.00''2.00''2.00''1.45''2.00''2.00''2.00''2.00''2.00''2.00''2.00''0.48''0.56''1.08''1.75''1.92''1.67''1.93''1.69''1.69''1.29''1.66''1.65''1.16''0.29''0.81''1.54''1.63''1.69''1.50''1.77''2.00''2.00''2.00''2.00''2.00''1.95''2.00''2.00''1.90''2.00''2.00''2.00''2.00''1.80''1.94''1.49''1.34''0.98''1.38''1.43''1.33''1.62''1.59''1.54''1.53''1.37''1.48''1.48''1.22''1.77''2.00''1.53''1.54''1.61''1.40''1.85''0.85''0.65''1.08''1.03''1.19''0.41''1.48''0.86''0.69''1.11''0.88''1.07''0.92''0.76''0.95''1.34''1.43''1.29''1.38''1.41''1.31''1.17''1.07''1.03''1.01''1.01''0.99''0.75''0.75''0.75''0.75''0.75''0.75''0.75''0.75''0.75''0.75''0.75''0.75''0.75''0.75''0.75''0.75''0.75''0.75''0.75''0.75''0.75''0.75''0.75''0.75''0.75''0.75''0.75''0.75''0.75''0.75''0.75''0.75''0.75''0.75''0.75''0.75''0.75''0.75''0.75''0.75''0.75''0.75''0.75''0.75''0.75''0.75''0')
function 
calcular1(){
// Se extrae un nuevo Array en base al rango seleccionado en los menus.
sumatorio conprorroga.slice(cp_2,cp_1);
sumatorio2 sumatorio.reverse();
//Introduciomos el String "+" entre cada valor del nuevo array para luego evaluarlo con eval.
res = eval(sumatorio2.join("+"));
//Redondeamos el resultado de la operacion
var flot=parseFloat(res);
var 
resultadoRedondeo=Math.round(flot*10000)/10000 ;
//Imprimimos el resultado en la casilla correspondiente.
document.formulario.resultado1.value=resultadoRedondeo "%";
 }
</script> 
  #6 (permalink)  
Antiguo 12/11/2007, 21:24
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
Re: Como se pueden sumar varios elementos del mismo Array

Hola:

Me alegro de que te funcione... tan solo un pequeño apunte sobre tu código.

Creo que para convertir una cadena a número es mejor usar parseInt o parseFloat, según sea entero o real... y puedes simplificar la forma de obtener el valor del select...

with(document.formulario){
cp_1 = 1 + parseFloat(select1.value);
cp_2 = parseFloat(select2.value);
if(cp_1<=cp_2) alert("Primero debe seleccionar la fecha mas reciente");
}

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #7 (permalink)  
Antiguo 14/11/2007, 13:51
 
Fecha de Ingreso: julio-2007
Ubicación: México DF
Mensajes: 57
Antigüedad: 17 años, 4 meses
Puntos: 4
Re: Como se pueden sumar varios elementos del mismo Array

Tienes razon no recordaba que se puede simplificar mas el codigo
cp_1 += eval(select1.options[select1.selectedIndex].value);
cp_2 += eval(select2.options[select2.selectedIndex].value);

a

cp_1 = 1 + parseFloat(select1.value);

cp_2 = parseFloat(select2.value);

lo hare; aunque no sabia que se puede utilizar parseFloat() para pasar de cadena a valor numerico, es mas creo que no me queda bien claro para que es parseFloat, me podrias orientar un poco mas por favor.
Gracias y Saludos
  #8 (permalink)  
Antiguo 14/11/2007, 15:49
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
Re: Como se pueden sumar varios elementos del mismo Array

Hola:

parseInt convierte a números enteros y parseFloat a reales, o sea con decimales... por lo visto tus números son los segundos (3.2 1.5 ...)

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #9 (permalink)  
Antiguo 14/11/2007, 18:20
 
Fecha de Ingreso: julio-2007
Ubicación: México DF
Mensajes: 57
Antigüedad: 17 años, 4 meses
Puntos: 4
Re: Como se pueden sumar varios elementos del mismo Array

Pero tambien hace la funcion de evaluar cadena asi como lo hace eval()..
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:49.