你如何处理多参数JavaScript函数?

时间:2010-02-08 02:32:42

标签: javascript function argument-passing optional-parameters

我已经定义了我的JavaScript函数,如下所示:

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>");
}

并将其称为:

printCompanyName("Dell, Microsoft, Apple, Gizmodo, Amazon");

但我得到以下输出:

Dell, Microsoft, Apple, Gizmodo, Amazon

undefined

undefined

undefined

undefined

什么给了!?我一直在努力为小时解决这个问题。我想要:

Dell
Microsoft
Apple
Gizmodo
Amazon

4 个答案:

答案 0 :(得分:3)

你传递的是一个恰好包含4个逗号的字符串 因此,第一个参数包含该单个字符串,其他4个未定义。 (Sisnce你只给了一个值)
由于Javascript参数是可选的,因此不会通过传递其他参数的值来获得错误。

你需要在它们之间用逗号传递5个不同的字符串,如下所示:

printCompanyName("Dell", "Microsoft", "Apple", "Gizmodo", "Amazon");

答案 1 :(得分:2)

您想致电:

printCompanyName("Dell", "Microsoft", "Apple", "Gizmodo", "Amazon");

你目前正在这样做,你正在通过一家公司“戴尔,微软,苹果,Gizmodo,亚马逊”。

答案 2 :(得分:1)

试试这个:

printCompanyName("Dell", "Microsoft", "Apple", "Gizmodo", "Amazon");

答案 3 :(得分:0)

其他信息:

使用函数将参数作为字符串逗号分隔的方法:

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>");  
    }
}

例如:printCompanyName("Dell, Microsoft, Apple, Gizmodo, Amazon");

否则使用内部参数var:

的多参数函数
function printCompanyName()
{
    for(var i in arguments) {
        document.write("<p>" + arguments[i] + "</p>");  
    }
}

例如:printCompanyName('Dell', 'Microsoft', 'Apple', 'Gizmodo', 'Amazon');就像SLaks说的那样。