ES8中如何优雅的遍历对象

简介

之前我写了一篇关于ES6是如何遍历对象的,如果有兴趣的同学可以去看下,链接在这里
ES6遍历数据的方法

在ES8里面,代码变得更加的优雅,简洁。那么在ES8里面,是如何对对象进行遍历的呢

Object.keys

在ES6里面,遍历对象获得key值是这样操作的

let data = {
    name:'Yao',
    age:18
}
for (const key in data) {
    if (data.hasOwnProperty(key)) {
        const element = data[key];
        console.log(key,element); 
        //name Yao
        //age 18
    }
    
}

在ES8里面这个过程变得非常的简洁

let myData = Object.keys(data)
console.log(myData); // ["name","age"]
console.log(...myData); // name age
Object.values

这个API是用来遍历对象里面的value值的,使用的方法也非常的简单,优雅。

let myData = Object.values(data);
console.log(myData);  //["Yao",18]

同样,由于 Object.keysObject.values 这个API会把对象转换成一个数组的形式返回回来,那么所有数组上的API方法也可以在这里使用了。

例如,如果想单独拿到这个对象上面name的属性值,只需要这样做就可以了

let myData = Object.values(data)
.filter(item=>item==='Yao'?'Yao':'');
Object.entries

将不可遍历的对象转变成可遍历的对象,这个API的作用就是这样,也就是处理for…of…遍历对象的时候报错
xxx is not iterable,这个问题

for (const iterator of Object.entries(data)){
    console.log(iterator)
    // ["name","Yao"]  ["age",18]
}

同样的也会转换并且返回的一个数组。

严格意义上来说,它是把对象转换成了一个数组结构,然后内部的属性同样也变成了数组形式

console.log(Object.entries(data));

打印出来的结构:
在这里插入图片描述

创作不易,这些都是我自己在学习过程中的一些笔记,如果觉得我的文章对你有些帮助,点个赞吧!!!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值