我听说JavaScript中的@
循环是passé,不应该用于支持其他更清晰的替代方案。 JSLint甚至在遇到错误时抛出错误(当然,除非你覆盖它)。我理解在情况允许的情况下使用for(){...}
,但在此实例中 我可以使用哪种替代方案“更清晰”?
Array.prototype.forEach()
在var number = 5;
for (var i=0; i <= number; i++){
log("somestring" + i);
}
我会使用C#
而不是foreach(){...}
- 但我知道在JavaScript中没有这样的选择。我可以创建一个数字0 ... 5的数组,但这似乎走了很长的路没有收获。
修改1
我不是在寻找一个替代插件来实现这个,如lodash或jQuery,我的问题实际上不是“为什么JSLint ......”。我会使用原生JavaScript 替代方案吗?
答案 0 :(得分:1)
return
在javascript循环之间不是一个好主意。由于相同的原因,您可以使用break
或continue
来破坏两者之间的执行。还可以获取数据foreach
jquery也允许对象映射如下所示。
并根据下面给出的功能,将每个值作为动态字符串获取。
var number = 5;
var toReturn = function(){
var ar_data = [];
for (var i=0; i <= number; i++){
ar_data[i] = "somestring" + i; // Store your dynamic string into a variable
}
return ar_data; // return array
}
var data = toReturn(number);
for(dt in data) // foreach type object mapping and tracing
{
console.log(data[dt]); //print the individual item in array.
}
答案 1 :(得分:0)
如果您使用数组存储数字,请使用provider
:
gameId
编辑:问题是,如果你不想使用数组,那么for循环将是最具可读性的。我的建议是忽略JSLint所说的内容。
我刚发布另一条建议。它使用数组索引生成数组:
.reduce()