我想使用一些数组作为函数参数。 我写这段代码但不起作用。 请帮帮我
我不知道数组的数量
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);
}
答案 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]);
}
}