10

我试图弄清楚如何遍历传递的几个数组参数。例如: [1,2,3,4,5],[3,4,5],[5,6,7] 如果我将它传递给一个函数,我将如何在每个参数内部都有一个函数循环(任何可以传递的数组数量)?

我想在这里使用 for 循环。

4

4 回答 4

19

您可以为此使用参数:

for(var arg = 0; arg < arguments.length; ++ arg)
{
    var arr = arguments[arg];

    for(var i = 0; i < arr.length; ++ i)
    {
         var element = arr[i];

         /* ... */
    } 
}
于 2013-03-04T20:20:17.380 回答
7

使用 forEach,如下:

'use strict';

    function doSomething(p1, p2) {
        var args = Array.prototype.slice.call(arguments);
        args.forEach(function(element) {
            console.log(element);
        }, this);
    }

    doSomething(1);
    doSomething(1, 2);
于 2017-05-15T12:47:06.613 回答
2

使用内置arguments关键字,该关键字将包含length您拥有的数组数量。以此为基础循环遍历每个数组。

于 2013-03-04T20:19:59.237 回答
0
function loopThroughArguments(){
    // It is always good to declare things at the top of a function, 
    // to quicken the lookup!
    var i = 0,
        len = arguments.length;

    // Notice that the for statement is missing the initialization.
    // The initialization is already defined, 
    // so no need to keep defining for each iteration.
    for( ; i < len; i += 1 ){

        // now you can perform operations on each argument,
        // including checking for the arguments type,
        // and even loop through arguments[i] if it's an array!
        // In this particular case, each argument is logged in the console.
        console.log( arguments[i] );
    }

};
于 2018-05-11T09:17:46.893 回答