¿Cómo manejan las funciones de JavaScript múltiples argumentos?
-
19-09-2019 - |
Pregunta
he definido mi función de JavaScript de la siguiente manera:
function printCompanyName(company1, company2, company3, company4, company5)
{
document.write("<p>" + company1 + "</p>");
document.write("<p>" + company2 + "</p>");
document.write("<p>" + company3 + "</p>");
document.write("<p>" + company4 + "</p>");
document.write("<p>" + company5 + "</p>");
}
Y llama de la siguiente manera:
printCompanyName("Dell, Microsoft, Apple, Gizmodo, Amazon");
Pero consigo el siguiente resultado:
Dell, Microsoft, Apple, Gizmodo, Amazon
undefined
undefined
undefined
undefined
Lo que da !? He estado tratando de resolver esto por horas. Quiero:
Dell
Microsoft
Apple
Gizmodo
Amazon
Solución
¿Quieres llamar:
printCompanyName("Dell", "Microsoft", "Apple", "Gizmodo", "Amazon");
La forma en la que se está haciendo lo que estás pasando en una empresa "Dell, Microsoft, Apple, Gizmodo, el Amazonas".
Otros consejos
Usted está pasando una sola cadena que pasa a contener 4 comas.
Por lo tanto, el primer parámetro contiene ese sola cadena, y la otra 4 no están definidos. (Sisnce solo dio un valor)
Ya que los parámetros de Javascript son opcionales, no obtiene un error al no pasar valores de los otros parámetros.
Tiene que pasar 5 cuerdas diferentes con comas entre ellos, así:
printCompanyName("Dell", "Microsoft", "Apple", "Gizmodo", "Amazon");
Prueba esto:
printCompanyName("Dell", "Microsoft", "Apple", "Gizmodo", "Amazon");
informaciones adicionales:
una manera de utilizar la función con el parámetro como una cadena separada por comas:
function printCompanyName(names)
{
// also check the type of names (you know "if it is a string object")
var data = names.split(',');
for(var i in data) {
document.write("<p>" + data[i].trim() + "</p>");
}
}
Ejemplo: printCompanyName("Dell, Microsoft, Apple, Gizmodo, Amazon");
De lo contrario una función de varios parámetros usando los argumentos var interna:
function printCompanyName()
{
for(var i in arguments) {
document.write("<p>" + arguments[i] + "</p>");
}
}
Ejemplo: printCompanyName('Dell', 'Microsoft', 'Apple', 'Gizmodo', 'Amazon');
juste como SLaks dijo