2012-12-30 29 views
0
for i in [name, matches_total, matches_won, matches_lost]: 
    doSomething(i) 

我試過這樣做的JS,但它沒有奏效。基本上,我希望它能夠對每個變量做任何事情。我如何做到這一點與JS?Python中的列表=> Javascript翻譯

我嘗試:

for (i in [name, matches_total, matches_won, matches_lost]){ 
    doSomething(i); 
} 

回答

1
for (var i = 0; i < list.length; ++i) { 
    doSomething(list[i]); 
} 

有兩種類型的for循環,該循環for-in專爲對象,對循環for (;;)三言。不建議在陣列上使用for-in,因爲它也遍歷其原型鏈。

+0

@Zoidberg」 - ?以何種方式都是固定的 – 0x499602D2

+0

'i'是索引,而不是元素本身。另外for循環本身是錯誤的。 – 2012-12-30 23:16:41

+0

@David:Zoidberg修復了索引與元素問題。你在他的解決方案中糾正了錯誤 – inspectorG4dget

3

JavaScript沒有完全相同的in運算符。如果你是在支持forEach的環境中,它的風格比較接近(除非你限定了內部匿名函數的循環,有點像一個Python lambda

[name, matches_total, matches_won, matches_lost].forEach(function(i) { 
    doSomething(i); 
}); 

在這種情況下(的情況下,你「再呼籲各列表項的單一功能),可以簡化這個在某種程度上,我覺得相當不錯的語法:

[name, matches_total, matches_won, matches_lost].forEach(doSomething); 
0
var my_array = [name, matches_total, matches_won, matches_lost] 

for (var i in my_array){ 
    doSomething(my_array[i]); 
}