2012-12-20 62 views

回答

4

假設列表存儲在名爲arr的變量中。

for (var i = 0; i < arr.length; i++) { 
    var elem = arr[i]; 
    // elem is either getFamilyPkg, or getActivePkg, or ... 
} 
+0

爲(VAR I = 0; I <3;我++){ \t \t \t \t \t \t \t \t \t webService_list.remove(0); }爲什麼這不起作用? – user1915539

+0

JS數組沒有'remove'方法。使用'pop'代替。 – tom

1

湯米的回答實際上是不正確的。 for (var i in arr)環在所有屬性/的arr對象原型,其包括像slice()內建函數等的性質見這裏的jsfiddle例如:http://jsfiddle.net/sEtMw/(檢查控制檯,你會看到一堆比數組元素以外的額外的屬性的

有幾個方法(再次假設該陣列被命名arr):

var elem; 
for (var i = 0, len = arr.length; i < len; i++) { 
    elem = arr[i]; 
    // elem is actually one of the array elements here 
} 

另一種選擇是,如下所示:

var elem; 
while (elem = arr.shift()) { 
    // elem is one of the array elements 
} 

請注意,第二種方法不是保持陣列完好無損。即在循環結束時,該陣列將是空的。但是如果你沒有問題,語法肯定是更清晰的。這兩種方法在這裏說明:http://jsfiddle.net/z7zKK/。最後記錄變量arr以說明它是空的。

+0

是的,你是對的。讓我編輯我的答案,使用簡單的i = 0 ... i ++方法。你從我這裏得到一大筆讚賞! – tom

+0

在你的防守中,我認爲javascript缺乏foreach循環是一個可怕的錯誤! –

+0

是的,這很糟糕。幸運的是,underscore.js帶有'_.each(...)'! – tom