js中遍历对象的几种方法

本文探讨了JavaScript中遍历对象的各种方法,包括遍历可枚举属性、不可枚举属性、以Symbol为键的属性,以及如何遍历自身及原型链上的所有属性。通过示例代码展示了for in、Object.keys、Object.getOwnPropertyNames、Object.getOwnPropertySymbols和Reflect.ownKeys等方法的用法和区别。了解这些细节对于优化代码和避免潜在问题至关重要。
摘要由CSDN通过智能技术生成

一、前言

我们知道,在js的对象中,有下面几种属性:

  • 可枚举属性
  • 不可枚举属性
  • 从原型链上继承的属性
  • 以Symbol作为key值

今天,我们就来谈一谈如何遍历这些属性。

二、遍历可枚举属性

  首先,遍历可枚举属性是非常常见的一个需求,我们平时比较常用的方法是for in和Object.keys(),这两个方法都能遍历可枚举属性,我们看看如下的代码:

let obj = {
   
  name: "klx",
  sex: "man",
  age: 21
}

Object.keys(obj).forEach((key, index) => {
   
  console.log(`${
     key}:${
     obj[key]}`);
})
//name:klx
//sex:man
//age:21
for(key in obj) {
   
  console.log(`${
     key}:${
     obj[key]}`);
}
//name:klx
//sex:man
//age:21

  可以看到,他们并没有什么区别。那么,这两个方法是完全一样的吗?我们再来看看下面的代码:

let obj = {
   
  name: "klx",
  sex: "man",
  age: 21
}

let parent = {
   
  parentName: "parent",
  parentSex: "man",
  parentAge:40
}

Object.setPrototypeOf(obj, parent);

Object.keys(obj).forEach((key, index) => {
   
  console.log(`${
     key}:${
     obj[key]}`);
})
//name:klx
//sex:man
//age:21
for(key in obj) {
   
  console.log(`${
     key}:
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值