javascript - `for of` 循环是否重新评估过滤后的数组?
问题描述
考虑这段 javascript 代码:
cont groups = [{ name: 'Sean', type: 'A' },
{ name: 'Jen', type: 'A' },
{ name: 'Tom', type: 'B'}]
for(const group of groups.filter(g => g.type === 'A')) {
...do some work
}
for 循环会重新评估组过滤器每次迭代吗?如何进行测试?在这个例子中,它并不重要,但是,在大型集合中,将过滤器操作提升到它自己的变量中可能很重要。
解决方案
不,它不会在每次迭代时重新评估。它会在开始时进行。For...of 循环与迭代器对象一起使用,该对象在内部计算所有元素索引。对于每次迭代,它调用迭代器的 next() 方法来获取下一个元素。有关迭代器的更多信息,请参阅此链接
推荐阅读
- pointers - char* 指针在 C 中如何工作?它们是如何存储的?
- python-3.x - 如何填充口罩?
- java - 我们可以为外部mysql服务器配置spring.datasource.url吗
- javascript - 如何在 javascript 中专家搜索/排序/过滤?
- java - Firestore 数据库注册失败权限被拒绝但实际上注册成功
- c++ - C++,Shared_ptr, 请告诉我为什么我的代码出错了?
- python - 通过索引从字典列表中获取项目
- javascript - 如何在js中使用事件监听器链接到html?
- javascript - 在滚动位置添加一个类
- r - R中是否有一个函数可以让我创建一个新的数据框,其中包含第一个数据框中的重复值?