Al llamar a multiMax () en la parte inferior del bloque de código, pasamos 4 argumentos. Veo cómo se desarrolla el resto de la lógica. Simplemente no entiendo por qué alert (multi) es igual a '3';
http://jsfiddle.net/captainill/AjEPV/
function multiMax(multi){
alert(multi);
// Make an array of all but the first argument
var allButFirst = Array().slice.call( arguments, 1 );
// Find the largest number in that array of arguments
var largestAllButFirst = Math.max.apply( Math, allButFirst );
// Return the multiplied result
return multi * largestAllButFirst;
}
alert( multiMax(3, 1, 2, 3) == 9, "3*3=9 (First arg, by largest.)" );
He estado revisando estos excelentes pequeños tutoriales: http://ejohn.org/apps/learn/#47
3 respuestas
alert(multi)
muestra "3" porque multi
es el primer argumento, y 3 es el primer valor que está pasando a la función.
ASSERT
y ALERT
NO son lo mismo.
No creo que la llamada alert
sea el problema real aquí. alert
solo imprime / muestra el primer valor -> en su caso, alert( multimax(3, 1,2,3) == 9, "Whatever")
tiene un primer parámetro de multimax(3,1,2,3)==9
, que como todos podemos ver es true
. Es por eso que obtiene true
en lugar de "3 * 3 == 9".
alert(multi)
muestra "3" porque está pasando 3 como primer valor en la función multiMax
.
Reemplace esta línea.
alert( multiMax(3, 1, 2, 3) == 9, "3*3=9 (First arg, by largest.)" );
Con
alert( multiMax(4, 1, 2, 3) == 9, "3*3=9 (First arg, by largest.)" );
Y el resultado será 4, observe la diferencia entre las dos líneas.
Preguntas relacionadas
Nuevas preguntas
javascript
Para preguntas sobre la programación en ECMAScript (JavaScript / JS) y sus diversos dialectos / implementaciones (excepto ActionScript). Incluya todas las etiquetas relevantes en su pregunta; por ejemplo, [node.js], [jquery], [json], etc.