【发布时间】:2015-10-29 21:01:48
【问题描述】:
我正在使用 CoffeeScript,我需要从头到尾遍历一个数组才能删除元素。这似乎是一项微不足道的任务。这是我的原始代码,如果列表长度大于 0,则可以正常工作,但是当列表长度为 0 时,循环从 -1 运行到 0 包括在内。
list = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
length = list.length
for i in [length-1..0]
if list[i] >= 3 and list[i] <= 5
list.removeAt(i)
我为长度为 0 的数组隔离了问题:
length = 0
for i in [length-1..0]
console.log '::', i
> :: -1
> :: 0
在常规 JavaScript 中不会有问题:
length = 0
for (i = length - 1; i >= 0; i--){
console.log('::', i)
}
// no output
我找不到任何方法在 CoffeeScript 中编写一个类似于上面 JavaScript 循环的 for 循环。
我找到了一个使用 while 循环的替代解决方案,但它并不漂亮。我想避免将我的 for 循环包装在 if 中。 有什么方法可以为此做一个 CoffeeScript 循环,就像上面的简单 JavaScript 循环一样?
【问题讨论】: