0
for i in [name, matches_total, matches_won, matches_lost]:
    doSomething(i)

我尝试为 JS 执行此操作,但没有成功。基本上,我希望它对每个变量做任何事情。我如何用 JS 做到这一点?

我的尝试:

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

3 回答 3

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);
于 2012-12-30T23:17:09.580 回答
1
for (var i = 0; i < list.length; ++i) {
    doSomething(list[i]);
}

有两种 for 循环,一种for-in是为对象设计的循环,另一种是三语句 for 循环for (;;)for-in不建议在数组上使用,因为它也会遍历其原型链。

于 2012-12-30T23:13:27.677 回答
0
var my_array = [name, matches_total, matches_won, matches_lost]

for (var i in my_array){
    doSomething(my_array[i]);
}
于 2012-12-31T00:24:07.180 回答