【问题标题】:JavaScript looping through an object while adding itemsJavaScript 在添加项目时循环对象
【发布时间】:2010-08-11 03:25:29
【问题描述】:

我有以下代码段:

var run = 0;
var obj = {'item1':0,'item2':5,'item3':10};
for (var i in obj){
    run++
    obj['newItem'+run] = 5;
}
return run;

它返回3。但我希望它无限继续并最终使浏览器崩溃。有没有办法在 for 循环中更新 obj 变量?

【问题讨论】:

  • “但我希望它无限运行并最终导致浏览器崩溃”。甚至得到了赞成:)

标签: javascript arrays loops


【解决方案1】:

一般来说,您不应该向正在发生迭代的对象添加属性。

引用Mozilla Dev Center

添加到发生迭代的对象的属性可以在迭代中访问或省略。一般来说,在迭代过程中最好不要在对象中添加、修改或删除属性,除了当前正在访问的属性;无法保证添加的属性是否会被访问,修改后的属性是否会在修改之前或之后被访问,或者删除的属性是否会在删除之前被访问。

【讨论】:

  • 好吧,我想这行不通。但是,在循环期间添加属性会节省大量编码。
猜你喜欢
  • 2018-05-19
  • 1970-01-01
  • 2021-12-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-28
  • 2016-04-20
  • 1970-01-01
  • 2011-06-26
相关资源
最近更新 更多