了解for...in和for...of

for...in:循环遍历的值都是数据结构的键值,它可以循环数组也能循环对象,它遍历数元素的时候,还会遍历其他新增的属性.

  <script>
        const a ={
            name:'小民',
            age:'18',
        } //创建对象
            for(let i in a){ //使用for...in 来遍历对象
               console.log(i);// name age
            }

    </script>

for...in遍历出了对象a的属性

    <script>
        const a ={
            name:'小民',
            age:'18',
        } //创建对象
            for(let i in a){ //使用for...in 来遍历对象
              console.log(a[i]);// 小民  18
            }

    </script>

console.log(a[i])可以获取对象内的值

for...of:可以遍历数组,但是在正常情况下它是没有办法遍历可迭代对象的

var  arr=[1,2,3,4,5,6]
for(let i of arr){
    console.log(i);
}//1,2,3,4,5,6

那for...of怎么遍历可迭代对象呢?我们就要用到iterator。

iterator遍历器是一种接口,为各种不同的数据结构提供统一的访问机制。也就是说只要拥有了 Iterator 接口就可以完成统一访问遍历操作。

作用

  1. 为不同的数据结构提供统一的访问机制;

  2. 使得数据结构的成员能够按照某种次序排序;

  3. 为 ES6 for…of 调用。

    // 对象
    function Person(name,age,sex){
        this.name=name
        this.age=age
        this.sex=sex
    }
    Person.prototype.hight=188
     
    p[Symbol.iterator]=function(){
        var keys=Object.keys(this)
        var index=0
        return {
            next(){
                if(index<keys.length){
                    return{value:p[keys[index++]],done:false}
     
                }else{
                    return{value :undefined,done:true}
                }
            }
        }
    }
    var p=new Person("张三",18,"男")
    for(let i  of p){
        console.log(i);
    }
    //张三  18  男

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值