在js中使用3个数组作为函数参数

时间:2014-04-23 12:51:06

标签: javascript arrays parameters

我想使用一些数组作为函数参数。 我写这段代码但不起作用。 请帮帮我

我不知道数组的数量

function func2(x,y,z)
{
    alert(x[1]);
    alert(y[1]);
    alert(z[1]);

}
function func1()
{
    a = [1,2,3]
    b = [3,4,5]
    c = [5,6,7]
    func2(a,b,c);
}

3 个答案:

答案 0 :(得分:1)

您的func2函数正在调用自己。此外,使用var这是一个好主意,以避免意外创建全局变量:

function func2()
{
    var a = [1,2,3],
        b = [3,4,5],
        c = [5,6,7];
    func1(a,b,c);
}

更新根据您的更新问题,如果您想创建一个接受可变数量参数的函数,则需要访问arguments对象:

function func2()
{
    alert("There are " + arguments.length + " arguments");
}

arguments对象可以像数组一样被访问(尽管它实际上不是数组)。所以要从每个数组中打印第二个元素(记住数组索引从0开始),你可以使用这样的东西:

function func2()
{
    for (var i = 0; i < arguments.length; i++)
        alert(arguments[i][1]);
}

另一种策略是接受一个数组数组(也称为多维数组,尽管JavaScript中不支持技术上的多维数组),如下所示:

function func2(a)
{
    for (var i = 0; i < a.length; i++)
        alert(a[i][1]);
}
function func1()
{
    var a = [1,2,3],
        b = [3,4,5],
        c = [5,6,7];
    func2([a,b,c]);   // notice the […] around the parameters
}

答案 1 :(得分:0)

function func1(x,y,z)
{
    alert(x[1]);
    alert(y[1]);
    alert(z[1]);
}
function func2()
{
    var a = [1,2,3];
    var b = [3,4,5];
    var c = [5,6,7];
    func1(a,b,c);
}

答案 2 :(得分:0)

如果我读得很好,你必须使用arguments来迭代动态数量的参数。假设您只将数组传递给func2

function func2() {
    for (var i = 0; i < arguments.length; i++) {
        alert(arguments[i][1]);
    }
}