entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

como sumar los valores de un array en javascript

en esta ocasion les vengo con un codigo dificil de depurar se antes de seguir quiero aclarar que cada boton tiene un valor distinto, en cuestion no se si es correcto definir el valor de mi boton entre parentensis, prefiero el atributo data pero visto que no se como acceder a tal atributo por javascript nativo no lo uso. dicho esto voy al grano, necesito sumar todos los elementos contenidos en mi array y luego imprimirlos por pantalla, con el codigo a continuacion surgen algunos problemas que voy a listar
1.el codigo no es reconocido por el navegador y retorna
este aviso en la consola :"the function is not defined" a pesar de estar escrito todo bien.

2.el metodo innehtml no imprime nada en pantalla

  1. ninguno de los botones cumple con su funcion
<button id="boton1" onclick="calculo()">calcular</button>
<button id="boton2" onclick="sumar(10)">producto1</button>
<button id="boton3" onclick="sumar(20)">producto2</button>

<span id="dato"></span> // en este espacio deberia imprimirse el resultado del calculo

var elementos = [];  // en este array deberian guardarse cada elemento cuando es presionado el boton agregar sin importar el orden

function sumar () {

//esta funcion deberia guardar el valor de mi  boton2 y boton3 en mi array, 
elementos.push(elemento);

}

function calculo() {

// esta funcion deberia sumar todos los valores de mi array y luego imprimirlos en la pagina

var resultado = elementos.length  
document.getElementById('dato').innerHTML = resultado

creo que no hace falta ningun detalle extra para comprender el problema

1 Respuesta

1voto

Leonardo-Tadei Puntos227320

Hola @stevenpro97,

si el código que pudiste es literal, tenés varios problemas:

  • el código JavaScript para ser reconocido como tal debe estar entre etiquetes <script> y </script>. Supongo que lo está, y que está en otro archivo al que estás llamando, pero por si acaso, te lo comento.
  • la función sumar() recibe como parámetro los números 10 o 20 en el ejemplo, pero no está definida para aceptar ningún parámetro, y lo que se recibiría no está usado en ningún lugar.
    Tendrías que definirla como function sumar(elemento)
  • la función calculo() no hace lo que debe. Si en sumar() estás agregando un elemento al vector, la cantidad de elementos no es la suma [salvo que solamente agregues elementos que valgan 1!]. Una de dos: o calculo() recorre el vector y lo suma, o sumar() en vez de agregar elementos, los va sumando, en cuyo caso no hace falta que sea un vector...
  • después, asumiendo que copiaste y pegaste, a las líneas de la función calculo() les falta el ; final, con lo que al tener un error de sintaxis, la función está mal y no se define, lo que es consistente con el error.

Saludos cordiales!

0voto

steven comentado

hola leonardo-tadei muchas gracias por analizar mi codigo, a proposito te informo que omiti algunas comas y por lo tanto no hay errores de sintaxis, el problema que me aflige es la siguiente como asignar un valor a cada boton individualmente sin afectar el funcionamento de mi codigo, es decir si tengo por ejemplo cinco productos y quiero que cada uno tenga un valor distinto de que manera puedo hacer para que este valor se guarde en mi array y posteriormente como sumaria todo estos valores para imprimirlo en mi pagina(para esto he creado un boton para llamar a tal funcion, el boton es dato), entiendo que mi codigo puede ser un poco confuso, lo es hasta para mi, una ultima informacion mi codigo esta en un archivo externo, buena observacion.
analiza mi codigo modificado, esta vez el script esta embebido en el documento para evitar malentendidos espero sea de tu gusto

<html>
<head>
<script type="text/javascript">
var array = [];
function agregar_elemento(){ array.push(); }
function sumar_elementos(10,20,40){ array.lengh ;}
function imprimir_resultado() {array.length.innerHTML=resultado;}

</script>
</head>
<body>
<button id="boton1" onclick="agregar_elemento(10)"></button>
<button id="boton1" onclick="agregar_elemento(20)"></button>
<button id="boton1" onclick="agregar_elemento(40)"></button>

<button id="boton2" onclick="sumar_elementos()"></button>
<button id="boton3" onclick="imprimir_resultado()"></button>
</html>

voy a poner un caso si en mi pagina quiero que dos elementos tengan un valor numerico por ejemplo si quiero que un div tenga el valor 10 y otro div tenga el valor 20, como haria para asignar dicho valor a mi div? que opciones hay para este proposito, luego quiero que sean agregados al array y luego sumados y al final que el resultado de dicha suma sea imprimida por pantalla, como haria todo esto? hay quienes usan un atributo del html5 denominado data-target, es esto acaso la solucion?
si es asi, enhorabuena, pero que maneras tengo de hacerlo todo directamente desde javascript?

0voto

Leonardo-Tadei comentado

Para pasar el valor de cada botón a la función, te lo comento en el punto 2.

Para sumar el contenido del vector, en el punto 3.

Intentaste implementarlo? Te da algún error? Cómo quedó tu código?

PD: algún error de sintaxis hay, porque estás obteniendo un the function is not defined...

0voto

steven comentado

comprueba si hay errores en mi nuevo codigo, el problema persiste, como hago para asignar un valor numerico distinto a cada elemento para posteriormente imprimir el resultado de la suma en mi pagina.

<html>
<head>
<script type="text/javascript">
var array = [];
function agregar_elemento(){ array.push(); }
function sumar_elementos(10,20,40){ array.length ;} // se muy bien que esta funcion sirve solo para obtener la cantidad de lementos de mi array pero mi intencion es que deberia recuperar los elementos de mi array y sumarlos todos, en este caso 10, 20 y 40 lamentablemente es aqui la razon de mi problema.

function imprimir_resultado() {
var boton3 = document.getElementbyId('boton3');
boton3.innerHTML=resultado;
}

</script>
</head>
<body>
<button id="producto1" onclick="agregar_elemento(10)"></button>
<button id="producto2" onclick="agregar_elemento(20)"></button>
<button id="producto3" onclick="agregar_elemento(40)"></button>

<button id="boton2" onclick="sumar_elementos()"></button>
<button id="boton3" onclick="imprimir_resultado()"></button>
</html>

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta