作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
在 MDN 文档中:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...of
for...of
构造被描述为能够迭代“可迭代”对象。但是是否有一种好的方法来确定一个对象是否可迭代?
我试图找到数组、迭代器和生成器的共同属性,但一直无法找到。
除了在 try block 中执行 for ... of
并检查类型错误之外,是否有一种干净的方法来执行此操作?
最佳答案
检查可迭代性的正确方法如下:
function isIterable(obj) {
// checks for null and undefined
if (obj == null) {
return false;
}
return typeof obj[Symbol.iterator] === 'function';
}
为什么这有效(深度可迭代协议(protocol)):https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Iteration_protocols
既然我们在谈论 for..of,我想,我们是在 ES6 思维模式下。
此外,如果 obj
是一个字符串,请不要惊讶此函数返回 true
,因为字符串会遍历其字符。
关于javascript - 检查某物是否可迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18884249/
当我在我的 Angular 应用程序中创建一个常量时,我想访问一个 $injectable。 这样的事情可能吗?注入(inject)剂如何申报? myApp.constant('myCon
我正在尝试提取称为tests.stats()的个人功能的输出 我用return语句创建一个函数: return(c(list.test.1, list.test.2 ,list.test.3,
我是一名优秀的程序员,十分优秀!