开发者

How do you handle multi-argument JavaScript functions?

I have defined my JavaScript function as follows:

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

And called it as follows:

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

But I get the following output:

Dell, Microsoft, Apple, Gizmodo, Amazon

undefined

undefined

开发者_运维知识库undefined

undefined

What gives!? I have been trying to figure this out for hrs. I want:

Dell
Microsoft
Apple
Gizmodo
Amazon


You're passing a single string that happens to contain 4 commas.
Therefore, the first parameter contains that single string, and the other 4 are undefined. (Sisnce you only gave one value)
Since Javascript parameters are optional, you don't get an error by not passing values for the other parameters.

You need to pass 5 different strings with commas between them, like this:

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


You want to call:

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

The way you're currently doing it you're passing in one company "Dell, Microsoft, Apple, Gizmodo, Amazon".


Try this:

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


additional informations :

A way to use the function with the parameter as a string commas separated :

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

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

Otherwise a multi parameters function using the internal arguments var :

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

exemple: printCompanyName('Dell', 'Microsoft', 'Apple', 'Gizmodo', 'Amazon'); juste like SLaks said.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜