如果需要,我需要遍历一个数组并向该数组添加更多元素。但是coffeescript似乎以旧的长度终止循环(当for循环开始时数组结束)。我需要循环来遍历新添加的元素。我该如何解决这个问题?
arr = [1,2,3,4,5]
for x in arr
console.log(x + ">>>" + arr)
if(x < 3)
arr.push(5)
控制台输出:
这似乎不是js中的问题:
arr = [1,2,3,4,5]
for(i=0 ; i<arr.length ; i++){
console.log(arr[i]);
if(arr[i] < 3)
arr.push(5)
}
控制台输出:
答案 0 :(得分:0)
不要改变你正在迭代的数组。将算法拆分为多个段,例如:
arr = [1,2,3,4,5]
to_add = []
# 1. Check for new items to add
for x in arr
if x < 3
to_add.push(5)
# 2. Add the new items
arr = arr.concat(to_add)
# 3. Iterate over the array, including the new items
for x in arr
your_thing(x)