2013-03-04 46 views
8

Tôi đang cố gắng tìm ra cách lặp qua một số đối số mảng được truyền. Ví dụ: [1,2,3,4,5], [3,4,5], [5,6,7] Nếu tôi chuyển nó vào một hàm, làm thế nào tôi có một vòng lặp hàm bên trong mỗi đối số (bất kỳ số mảng có thể được thông qua)?Lặp qua số lượng đối số mảng không xác định

Tôi muốn sử dụng vòng lặp for tại đây.

+0

trong hàm bạn lặp qua 'đối số' và đối với mỗi đối số, bạn sẽ lặp lại qua mảng. – zzzzBov

+0

có thể trùng lặp của [số biến đối số JavaScript hoạt động] (http://stackoverflow.com/questions/2141520/javascript-variable-number-of-arguments-to-function) – jbabey

+0

var args = arguments; cho (i = 0; i swaggyP

Trả lời

12

Bạn có thể sử dụng arguments cho việc này:

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

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

     /* ... */ 
    } 
} 
2

Sử dụng từ khóa được xây dựng trong arguments sẽ chứa length của số lượng mảng bạn có. Sử dụng làm cơ sở để lặp qua từng mảng.

0

Sử dụng foreach, như sau:

'sử dụng nghiêm ngặt';

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

doSomething(1); 
doSomething(1, 2); 
Các vấn đề liên quan