Javascript对象迭代方法?

标签 javascript iterator

Javascript 没有通用的对象迭代器,允许执行以下操作:

foo.iterate (function (key, value) {
    console.log ("key->" + key + " value->" + value);
});

实现起来似乎很方便且简单。流行的库中是否内置了类似的东西?我不想重新发明轮子,如果做这样的事情,我希望遵循任何现有方法的命名(和语义)约定。

那么像这样的通用迭代器是否存在于某处?

补充:我一直在修改并向 Object.prototype 添加了一个迭代器函数。这使得 for 循环速度减慢了大约 20 倍!我什至没有调用新的迭代器方法,只是将其添加到对象的原型(prototype)中就大大减慢了 for 循环。我假设这会否定 Chrome 中的优化。这可以解释为什么提到的这些库都没有向对象添加迭代方法。

最佳答案

事实并非如此,但这里有一种无需库或额外函数(for..in 循环除外)即可实现此目的的方法:

Object.keys(foo).forEach(function(key){
  console.log(this[key]);
}, foo);

关于Javascript对象迭代方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20577527/

相关文章:

c++ - 接口(interface)和协变问题

Python:如何断言可迭代的第一个元素的类型?

Javascript:如何在多维数组上实现迭代器?

javascript - 根据条件将数组复制到另一个数组

javascript - 在包中运行 Javascript 和 Servlet 代码

javascript - "JavaScript Hell"- 像 "DLL Hell"

javascript - 在带有 javascript 的函数中使用三元运算符

javascript - 如果需要如何加载数据? react /减少。无SSR

c++ - 函数返回基类而不是派生类,这是编码错误还是 Visual C++ 错误?

python - 需要从 python 列表中找到子元素