将数组作为参数列表提交给函数

时间:2015-08-23 00:26:48

标签: javascript

必须在函数传输之前处理数组,以便数组的每个元素都被选择为该参数。方法.join失败,因为它使对象成为[object Object]。考虑到阵列的大小没有固定并且可以改变,它最好怎么办?

示例:

function test(a, b, c) {
  console.log(a);
  console.log(b);
  console.log(c);
}

var arr = [1, 2, 3];

//array processing

test(arr);

并且控制台返回

1
2
3

该功能无法进行更改。数组中的元素数量可以不同。

抱歉英文不好。

1 个答案:

答案 0 :(得分:3)

目前尚不清楚你被困在哪里。您可以将数组传递给函数并检查函数内部数组的.length,如下所示:

function test(items) {
    for (var i = 0; i < items.length; i++) {
        document.write(items[i] + "<br>");
    }
}

var arr = [1, 2, 3];
test(arr);

如果要向函数传递可变数量的参数并查看传递了多少个参数,可以使用每个函数中存在的arguments object

function test() {
    // arguments.length is the number of arguments passed
    // arguments[i] is each argument
    for (var i = 0; i < arguments.length; i++) {
        document.write(arguments[i] + "<br>");
    }
}

test(1,2,3,4,5);

如果你想弄清楚如何获取一个元素数组并将它们作为函数的参数传递,那么你可以使用.apply()

function test(a, b, c, d) {
    document.write(a + "<br>");
    document.write(b + "<br>");
    document.write(c + "<br>");
    document.write(d + "<br>");
}

var arr = [1, 2, 3, 4];
test.apply(null, arr);