【发布时间】:2018-08-17 13:42:56
【问题描述】:
有没有办法在 Javascript 或使用 JQuery 中“实时”循环数组?我的意思是创建一个循环,在开始循环之前读取数组内容而不缓存它,例如,如果我这样做。
var array = [{'hi':0},{'how':1},{'are':2},{'you':3}];
for(var i=0;i < array.length;i++){
console.log(i);
if(i == 2){
array.push({'?':4});
}
}
console.log(array);
循环将只输出 4 个值,但在完成循环之前它已经有 5 个值
我还想在循环运行时循环插入的新值。
为了更清楚,我需要这样做,因为我正在构建一个 web 应用程序,它在向服务器提交数据之前创建一个队列,一个循环提交数组中的数据,但这个数组也可以在进程中由其他人更新功能
谢谢!
【问题讨论】:
-
它输出 5 个值。你的问题不清楚。
-
@AnkitAgarwal 他的问题对我来说很清楚 - 他想在循环期间改变数组,并希望在对数组进行插入时循环继续进行
-
@duxfox-- 是的,但他说它只记录了 4 个值,但事实并非如此,循环正在记录整个数组,包括循环内添加的值,所以是 5 个值跨度>
-
您是否忘记了索引从零开始,而 4 实际上是第 5 次迭代?
-
向您的代码添加更多日志记录详细信息,您将看到在循环结束时添加的索引。
console.log(i, JSON.stringify(array[i]));
标签: javascript jquery arrays loops