|
@@ -0,0 +1,65 @@
|
|
|
|
+<!DOCTYPE html>
|
|
|
|
+<html lang="en">
|
|
|
|
+<head>
|
|
|
|
+ <meta charset="UTF-8">
|
|
|
|
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
|
|
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
|
|
+ <title>Document</title>
|
|
|
|
+</head>
|
|
|
|
+<body>
|
|
|
|
+ <script>
|
|
|
|
+ /**
|
|
|
|
+ * 只有实现了 Iterator接口的对象才能够使用 for of 来进行遍历取值
|
|
|
|
+ * 每调用一次 next 方法,指针都会向后移动一个位置
|
|
|
|
+ */
|
|
|
|
+ //声明数组
|
|
|
|
+ const arr = [1,2,3,4,5]
|
|
|
|
+ //for of 遍历
|
|
|
|
+ for(let v of arr){
|
|
|
|
+ console.log(v)
|
|
|
|
+ }
|
|
|
|
+ console.log(arr)
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 迭代器应用
|
|
|
|
+ * 自定义遍历数组
|
|
|
|
+ */
|
|
|
|
+ const bbb = {
|
|
|
|
+ name:'aaa',
|
|
|
|
+ stus:[
|
|
|
|
+ 'zhangsan',
|
|
|
|
+ 'lisi',
|
|
|
|
+ 'wanger'
|
|
|
|
+ ],
|
|
|
|
+ [Symbol.iterator](){
|
|
|
|
+ let index = 0;
|
|
|
|
+ let _this = this
|
|
|
|
+ return {
|
|
|
|
+ next:function(){
|
|
|
|
+ if(index < _this.stus.length){
|
|
|
|
+ const res = {
|
|
|
|
+ value:_this.stus[index],
|
|
|
|
+ done:false
|
|
|
|
+ }
|
|
|
|
+ index++
|
|
|
|
+ return res
|
|
|
|
+ }else{
|
|
|
|
+ const res = {
|
|
|
|
+ value:undefined,
|
|
|
|
+ done:true
|
|
|
|
+ }
|
|
|
|
+ return res
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ //使用for of 遍历bbb
|
|
|
|
+ for(let v of bbb){
|
|
|
|
+ console.log(v)
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ </script>
|
|
|
|
+</body>
|
|
|
|
+</html>
|