Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: Ali Baba en 3 Mayo 2017, 02:47 am



Título: Parámetros infinitos?
Publicado por: Ali Baba en 3 Mayo 2017, 02:47 am
Resulta que tengo esta función de suma:

Código
  1. function sum(a, b) {
  2.  a = parseFloat(prompt("numero"));
  3.  b = parseFloat(prompt("numero"));
  4.  c = a + b;
  5.  return alert(c);
  6. }
  7. sum(1, 2);

En javascript por supuesto, y la probé y funciona todo perfecto, ahora bien, resulta que a esta solo se le pueden pasar dos parámetros y yo quiero que cuando se le llame la función el usuario pueda elegir que cantidad de números (parámetros) sumar y colocarlos todos y sumarlos, alguien tiene alguna idea?


Título: Re: Parámetros infinitos?
Publicado por: MCKSys Argentina en 3 Mayo 2017, 02:57 am
Puedes usar el objeto arguments:

Código
  1. function funcion() {
  2.  for (var i = 0; i < arguments.length; i++) {
  3.    alert(arguments[i]);
  4.  }
  5. }

Source: http://stackoverflow.com/questions/2141520/javascript-variable-number-of-arguments-to-function (http://stackoverflow.com/questions/2141520/javascript-variable-number-of-arguments-to-function)

Saludos!


Título: Re: Parámetros infinitos?
Publicado por: dato000 en 3 Mayo 2017, 23:44 pm
Resulta que tengo esta función de suma:

Código
  1. function sum(a, b) {
  2.  a = parseFloat(prompt("numero"));
  3.  b = parseFloat(prompt("numero"));
  4.  c = a + b;
  5.  return alert(c);
  6. }
  7. sum(1, 2);

En javascript por supuesto, y la probé y funciona todo perfecto, ahora bien, resulta que a esta solo se le pueden pasar dos parámetros y yo quiero que cuando se le llame la función el usuario pueda elegir que cantidad de números (parámetros) sumar y colocarlos todos y sumarlos, alguien tiene alguna idea?

usa un arreglo dinamico, primero le preguntas al usuario cuantos parametros hay que sumar, y de acuerdo a eso, inicializas un arreglo con la cantidad de números a sumar, algo así:

Código
  1. <input name="numSuma" type="text" maxlength="10" id="IdNumSuma" class="searchField"/>
  2. <button onclick="Sumar()">Try it</button>
  3.  
  4.  
  5. <script type="text/javascript">
  6. function Sumar(){
  7.   //Aqui voy a poner que va a sumar X numero de veces la suma de 2,
  8.   //para determinar los numeros a sumar habra que generar nuevos inputs con las cajas de texto donde poner los numeros
  9.  
  10.  var tamanyoArray =   document.getElementById("IdNumSuma").value;
  11.  var arregloSuma = new Array;
  12.  for(int i=0; i<tamanyoArray; i++)
  13.  {
  14.        arregloSuma.push(2); //agregando num 2 por cada posición del arreglo
  15.  }
  16.  
  17.  var resultado = 0;
  18.  for(int i=0; i<tamanyoArray; i++)
  19.  {
  20.        resultado = resultado + arregloSuma[i]; // tambien funciona con resultado += arregloSuma[i];
  21.  }
  22. }
  23. </script>
  24.  

No lo he probado pero no es tan dificil, lo unico que quedaria pendiente es generar esos inputs para que se coloquen los elementos que se quieren sumar, eso se puede hacer facilmente con jquery o con javascript básico, una función append o algo similar funcionara.