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/