遍历对象方法Object.keys()&for...in

  最近的项目中用到了遍历对象的方法,但是又要兼容IE8浏览器,刚开始用的Object.keys()报错,又用回了万金油for...in,搜索了下Object.keys()的相关用法并总结如下:

那么我们目前有三种遍历对象的方法了 对于对象的遍历目前有三种方式:

1、for in : 会输出自身以及原型链上可枚举的属性。

2、Object.keys() : 用来获取对象自身可枚举的属性键    //不兼容IE8

3、Object.getOwnPropertyNames() : 用来获取对象自身的全部属性名

 在 ES6 之前执行此操作的唯一方法是使用 for ... in 循环。

在ES6之后循环对象的更好方法是首先将对象转换为数组。然后,循环遍历数组。

您可以使用三种方法将对象转换为数组:

  1. Object.keys
  2. Object.values
  3. Object.entries

Object.keys

Object.keys 创建一个包含对象属性的数组。这是一个例子:

 

JavaScript 代码:

  1. const fruits = {
  2. apple: 28,
  3. orange: 17,
  4. pear: 54,
  5. }
  6. const keys = Object.keys(fruits)
  7. console.log(keys) // [apple, orange, pear]

Object.values

Object.values 创建一个数组,其中包含对象中每个属性的值。这是一个例子:

 

JavaScript 代码:

  1. const fruits = {
  2. apple: 28,
  3. orange: 17,
  4. pear: 54,
  5. }
  6. const values = Object.values(fruits)
  7. console.log(values) // [28, 17, 54]

Object.entries

Object.entries 创建一个二维数组。每个内部数组都有两个元素。第一个元素是属性;第二个元素是属性值。

这是一个例子:

 

JavaScript 代码:

  1. const fruits = {
  2. apple: 28,
  3. orange: 17,
  4. pear: 54,
  5. }
  6. const entries = Object.entries(fruits)
  7. console.log(entries)
  8. // [
  9. // [apple, 28],
  10. // [orange, 17],
  11. // [pear, 54]
  12. // ]

我最喜欢的是 Object.entries ,因为你同时获得了键和属性值。

循环数组

一旦将对象通过 Object.keysObject.valuesObject.entries 转换为数组,就可以像使用普通数组一样遍历它。

 

JavaScript 代码:

  1. // Looping through arrays created from Object.keys
  2. const keys = Object.keys(fruits)
  3. for (const key of keys) {
  4. console.log(key)
  5. }
  6. // Results:
  7. // apple
  8. // orange
  9. // pear

如果使用 Object.entries,则可能需要将数组解构为其键和属性。

 

JavaScript 代码:

  1. for (const [fruit, count] of entries) {
  2. console.log(`There are ${count} ${fruit}s`)
  3. }
  4. // Result
  5. // There are 28 apples
  6. // There are 17 oranges
  7. // There are 54 pears

小结

循环对象的更好方法是首先使用这三种方法之一将其转换为数组。

  1. Object.keys
  2. Object.values
  3. Object.entries

然后,像普通数组一样遍历结果。

参考文章:https://zellwk.com/blog/looping-through-js-objects/

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值