Parámetros infinitos?

Iniciado por Diesan Romero, 3 Mayo 2017, 02:47 AM

0 Miembros y 1 Visitante están viendo este tema.

Diesan Romero

Resulta que tengo esta función de suma:

Código (javascript) [Seleccionar]
function sum(a, b) {
  a = parseFloat(prompt("numero"));
  b = parseFloat(prompt("numero"));
  c = a + b;
  return alert(c);
}
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?

MCKSys Argentina

Puedes usar el objeto arguments:

Código (javascript) [Seleccionar]
function funcion() {
  for (var i = 0; i < arguments.length; i++) {
    alert(arguments[i]);
  }
}


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

Saludos!
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


dato000

Cita de: Mago Diesan en  3 Mayo 2017, 02:47 AM
Resulta que tengo esta función de suma:

Código (javascript) [Seleccionar]
function sum(a, b) {
 a = parseFloat(prompt("numero"));
 b = parseFloat(prompt("numero"));
 c = a + b;
 return alert(c);
}
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 (javascript) [Seleccionar]

<input name="numSuma" type="text" maxlength="10" id="IdNumSuma" class="searchField"/>
<button onclick="Sumar()">Try it</button>


<script type="text/javascript">
function Sumar(){
  //Aqui voy a poner que va a sumar X numero de veces la suma de 2,
  //para determinar los numeros a sumar habra que generar nuevos inputs con las cajas de texto donde poner los numeros

 var tamanyoArray =   document.getElementById("IdNumSuma").value;
 var arregloSuma = new Array;
 for(int i=0; i<tamanyoArray; i++)
 {
       arregloSuma.push(2); //agregando num 2 por cada posición del arreglo
 }

 var resultado = 0;
 for(int i=0; i<tamanyoArray; i++)
 {
       resultado = resultado + arregloSuma[i]; // tambien funciona con resultado += arregloSuma[i];
 }
}
</script>


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.