斐波那契:前两项之和等于第三项
0 1 1 2 3 5 8 13 …
使用迭代器

	function *difficult(count=10){
				var num=0;
				var pre1=0;
				var pre2=0;
				if(num<count){
					if(num==0){
						pre1=1;
						num++;
						yield 0
					}
					while(true){
						num++;
						let result=pre1+pre2;
						pre2=pre1
						pre1=result;
						yield result
						if(num>=count){
							break;
						}
					}
				}
			}
			var diffAterator=difficult()
			console.log(diffAterator)
			for(let i of diffAterator){
				console.log(i)
			}

结果


<mark>这里,使用原生代码,实现迭代器效果</mark>

	function createInterator(count = 10) {
				var num = 0;
				return {
					pre1: 0,
					pre2: 0,
					next: function() {
						if (num > count) {
							return {
								done: true,
								value: undefined
							}
						}
						if (num == 0) {
							this.pre1 = 1;
							num++;
							return {
								//done代表事情做完了没有
								done: false,
								value: 0
							}
						} else {
							num++;
							result = this.pre1 + this.pre2;
							this.pre2 = this.pre1;
							this.pre1 = result
							return{
								done:false,
								value:result
							}

						}
					}
				}
			}
			var a = createInterator();

效果: