在 MDN 文档中: https ://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for…of
for...of
构造被描述为能够迭代“可迭代”对象。但是有没有一种好的方法来决定一个对象是否是可迭代的呢?
我试图找到数组、迭代器和生成器的通用属性,但一直无法找到。
除了在 try 块中执行 for ... of
并检查类型错误之外,是否有一种干净的方法来执行此操作?
原文由 simonzack 发布,翻译遵循 CC BY-SA 4.0 许可协议
检查可迭代性的正确方法如下:
为什么这有效(深度可迭代协议): https ://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Iteration_protocols
由于我们正在谈论 for..of,我想,我们处于 ES6 思维模式中。
此外,如果
obj
是一个字符串,则此函数返回true
也不要感到惊讶,因为字符串会遍历其字符。