javascript - yield后边什么时候加*,什么时候不加星?
PHPz
PHPz 2017-04-10 15:15:34
[JavaScript讨论组]

function*表示是一个生成器 yield 后边带星是什么意思?是因为我这个flat 是生成器,所以yield后边要带星?因为yield item中间就没星
ar arr = [1, [[2, 3], 4], [5, 6]];

var flat = function* (a){
var length = a.length;
for(var i =0;i<length;i++){
var item = a[i];
if (typeof item !== 'number'){
yield* flat(item);
} else {
yield item;
}
}
};

for (var f of flat(arr)){
console.log(f);
}
// 1, 2, 3, 4, 5, 6

PHPz
PHPz

学习是最好的投资!

全部回复(1)
巴扎黑

如果说yield命令后边跟着的是一个遍历器,那么就需要在yield命令后面加上星号,表明它返回的是一个遍历器。
具体可以参见 http://es6.ruanyifeng.com/#docs/generator

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号