image
Inicio » Foros » JavaScript

JavaScript

Sumar elementos de array

Volver al foro | Responder | Añadir nuevo tema


De: Julian
Fecha: 29/12/2009
Mensaje:

Hola amigos,una consulta.
Estoy empezando a programar, y como es logico no me estoy centrando tanto en la sintaxis sino en la "mecanica" de las estucturas condicionales,de desicion, los ciclos etc.
No es que no me alcanze la basta informacion que hay en la red, pero es como que sobra teoria y falta practica, en especial para principiantes.
Y me surgio una duda, por ejemplo:
Tengo un array y quiero sumar sus elementos que son numericos sin usar funciones predefinidas, osea crear la funcion en si.
Es posible? por ejemplo con esto
for(i=1;i<=10;i++){
//aca iria lo que no me sale jaja
que seria esto 1+2+3+4+5+6+7+8+9+10
}
y aca mostraria el resultado

Gracias espero no haberlos confundido y Gracias!!



Quizás le interese
De: jbosch(vosk)
Util para: 7 personas

Fecha: 29/12/2009
Mensaje:

para sumar los elementos de un array tienes que sumar los elementos que esten entre las posiciones del array primera y ultima, es decir entre 0 y array.length (esto es el nº de campos que tiene el array). la suma se hará sumando cada uno de los campos:

var a=new Array(3,5,7),r=0;
for(var q=0;q<a.length;q++) {r+=a[q];}
alert(r);

"...quiero sumar sus elementos que son numericos..."

es decir que tienes un array en que no se asegura que todos los elementos son numeros. tenen cuenta que el operador de javascript para la suma + es el mismo que para la concatenacion, mientras un tipo de datos sea numerico la suma no fallará, pero cuando alguno de los argumentos de la suma sea otro tipo de variable todo cambiará a ese nuevo tipo (es lo que sucede p.ej. con los valores provinentes de campos de texto, de prompts y otras cosas que retornan texto con caracteres numericos).

para asegurarte que un elemento es numerico tienes que aplicarle la funcion 'typeof', que para los numeros será 'number'. ahora puedes sumar todos los numeros:

var a=new Array(3,5,"a",7),r=0;
for(var q=0;q<a.length;q++)
{
if(typeof(a[q])=='number') {r+=a[q];}
}

y por ultimo quieres implementar una funcion para el objeto Array que se encargue de sumar todos los campos numericos y retorne el resultado. para esto tienes la funcion 'prototype', que permite añadir funciones propias a los objetos. vamos a crear una nueva funcion al objeto Array:

Array.suma=function()
{
//logica
}

ahora para todas las variables del tipo Array tienes disponible la funcion 'suma':

var a=new Array(3,5,"a",7);
a.suma();

de momento la funcion no hace nada. la logica será la misma de antes pero teniendo en cuenta que como array vas a usar el puntero 'this' en vez de la misma variable 'a'. ahora la longitud del array 'a' dentro de la funcion 'a.suma()' será:

this.length

y así con todo lo demas; dentro de esa funcion puedes crear variables, retornar valores, etc... solo tienes que implementar lo mismo que en el bucle que colgué anteriormente pero dentro del ambito 'this'.

jbosch(vosk)



De: Julian
Util para: 4 personas

Fecha: 30/12/2009
Mensaje:

Huy que distraido, te respondi creando un nuevo tema ,Que verguenza jeje.Osea el tema siguiente es mi respuesta a la tuya.Igual te vas a dar cuenta por el titulo jeje.



Volver al foro | Responder | Añadir nuevo tema

Quizás le interese:

WebEstilo.com no se hace responsable de las opiniones que los usuarios puedan verter en cualquiera de los foros existentes.

Si te solucionó el problema pulsa en G+1


Gracias!






Comparte



Última modificación:05 de Agosto de 2012. Spain - España.
© 1998-2004 por . Todos los derechos reservados.