【问题标题】:Javascript: iterate through dynamically changing dictionaryJavascript:遍历动态变化的字典
【发布时间】:2012-11-29 18:41:07
【问题描述】:

我试图通过在 Javascript 中添加元素来迭代字典,同时动态更改其大小。字典用 1 个元素初始化。 伪代码应该是这样的:

dict = {1:1};
i = 0;
for key in dict{
  dict[i] = i+1;
  i++;
  if i==10{break;}
}

【问题讨论】:

  • 你想通过这个达到什么目的?
  • 如果您正在扩展您的字典,字典对象上的 for-loop-iterator 不会对您有太大帮助。
  • 我正在尝试制作一个在 python 中实现的 dijkstra 算法:code.activestate.com/recipes/… 它使用priorityDict,但也适用于orderedDict()。所以现在我正在寻找一个类似的解决方案,但在 javascript
  • @box:Dijkstra 算法的几个 JS 实现已经可用。你这样做只是为了锻炼吗?否则:bitbucket.org/wyatt/dijkstra.js/src/fb6c30a3cebd/…
  • 是的,我搜索了其他解决方案,但是 python 中的这个解决方案看起来非常优雅且易于理解。无论如何感谢您的链接!

标签: javascript dynamic dictionary loops


【解决方案1】:

字典键(对象属性)不应该是整数,但这会使您的“字典”增加到 10 个元素(它只会添加 9 个元素,因为它会在 i == 1 时跳过:

var dict = { 1: 1 };
for (var i = 0; i < 10; i++) {
    if (!dict.hasOwnProperty(i)) {
        dict[i] = i + 1;
    }
}

【讨论】:

  • 谢谢,可能我描述的不是很准确,其实不知道最后会不会是10,所以一直在变化。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-09-16
  • 1970-01-01
  • 2019-09-24
  • 2016-04-10
相关资源
最近更新 更多