我有一个关于项目的集合,我试图使用 yield 来创建一个可迭代的集合,但增加了复杂性,我想排除不符合某个标准的值
function getNodes()
{
for each (let node in my_nodes)
{
if ( node.cost < 1000 )
yield node;
}
}
这似乎是合理的,我称之为:
let nodes = getNodes();
for (let item in nodes)
{
....
但是,我发现它item
以未定义的形式返回,导致代码出错。我的语法正确吗?有没有更好的方法来做到这一点?如果可以提供帮助,我宁愿不创建原始列表的精简版本,因为我希望智能地迭代排除的节点。