JS对象遍历的详细阐述

一、Object.keys()

Object.keys()方法可以获取对象的所有键(属性名),返回一个由键名组成的数组。可以使用for循环或Array.prototype.forEach()方法遍历此数组,然后通过键名获取对象的值。

  
    const obj = {a:1, b:2, c:3};

    const keysArray = Object.keys(obj);

    for(let i = 0; i < keysArray.length; i++){
      const key = keysArray[i];
      const value = obj[key];
      console.log(key, value);
    }
  

或者使用Array.prototype.forEach()方法

  
    const obj = {a:1, b:2, c:3};

    const keysArray = Object.keys(obj);

    keysArray.forEach((key) => {
      const value = obj[key];
      console.log(key, value);
    });
  

二、for…in循环

for…in循环可以遍历对象的所有可枚举属性,包括继承而来的属性,但是不包括Symbol类型的属性和不可枚举属性。不建议使用for…in循环遍历数组,因为数组也可以看做是一个对象,它的索引会被当做属性名。

  
    const obj = {a:1, b:2, c:3};

    for(let key in obj){
      const value = obj[key];
      console.log(key, value);
    }
  

三、使用Reflect.ownKeys()

Reflect.ownKeys()方法返回一个数组,包含对象自身所有属性名,不管属性名是Symbol或者字符串。

  
    const obj = {a:1, b:2, [Symbol()]: 3};

    const keysArray = Reflect.ownKeys(obj);

    keysArray.forEach((key) => {
      const value = obj[key];
      console.log(key, value);
    });
  

四、使用Object.entries()

Object.entries()方法返回一个键值对数组,包含对象自身所有可枚举属性(不包括继承而来的属性),其中每个键值对的键为属性名,值为属性值。

  
    const obj = {a:1, b:2, c:3};

    const entriesArray = Object.entries(obj);

    entriesArray.forEach((entry) => {
      const key = entry[0];
      const value = entry[1];
      console.log(key, value);
    });
  

五、使用Object.getOwnPropertyNames()

Object.getOwnPropertyNames()方法返回一个数组,包含对象自身所有属性名,包括不可枚举属性。

  
    const obj = {a:1, b:2, [Symbol()]: 3};

    const keysArray = Object.getOwnPropertyNames(obj);

    keysArray.forEach((key) => {
      const value = obj[key];
      console.log(key, value);
    });
  

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/231831.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-11 01:07
下一篇 2024-12-11 01:07

相关推荐

  • JS Proxy(array)用法介绍

    JS Proxy(array)可以说是ES6中非常重要的一个特性,它可以代理一个数组,监听数据变化并进行拦截、处理。在实际开发中,使用Proxy(array)可以方便地实现数据的监…

    编程 2025-04-29
  • Python遍历集合中的元素

    本文将从多个方面详细阐述Python遍历集合中的元素方法。 一、for循环遍历集合 Python中,使用for循环可以遍历集合中的每个元素,代码如下: my_set = {1, 2…

    编程 2025-04-29
  • Python如何遍历字典中的key和value

    本文将详细讲解Python中如何遍历字典中的key和value,包括多种遍历方式以及在遍历过程中的一些应用场景。 一、遍历字典中的key和value 在Python中,字典是一种无…

    编程 2025-04-29
  • 面向对象编程、类和对象

    面向对象编程(Object-Oriented Programming, OOP)是一种编程方法,它将现实世界中的事物抽象为对象(Object),对象的属性和方法被封装成类(Clas…

    编程 2025-04-29
  • 解析js base64并转成unit

    本文将从多个方面详细介绍js中如何解析base64编码并转成unit格式。 一、base64编码解析 在JavaScript中解析base64编码可以使用atob()函数,它会将b…

    编程 2025-04-29
  • Node.js使用Body-Parser处理HTTP POST请求时,特殊字符无法返回的解决方法

    本文将解决Node.js使用Body-Parser处理HTTP POST请求时,特殊字符无法返回的问题。同时,给出一些相关示例代码,以帮助读者更好的理解并处理这个问题。 一、问题解…

    编程 2025-04-29
  • t3.js:一个全能的JavaScript动态文本替换工具

    t3.js是一个非常流行的JavaScript动态文本替换工具,它是一个轻量级库,能够很容易地实现文本内容的递增、递减、替换、切换以及其他各种操作。在本文中,我们将从多个方面探讨t…

    编程 2025-04-28
  • 使用PHP foreach遍历有相同属性的值

    本篇文章将介绍如何使用PHP foreach遍历具有相同属性的值,并给出相应的代码示例。 一、基础概念 在讲解如何使用PHP foreach遍历有相同属性的值之前,我们需要先了解几…

    编程 2025-04-28
  • Mapster:一个高性能的对象映射库

    本文将深入介绍furion.extras.objectmapper.mapster,一个高性能的对象映射库,解释它是如何工作的以及如何在你的项目中使用它。 一、轻松地实现对象之间的…

    编程 2025-04-28
  • 二叉树非递归先序遍历c语言

    本文将为您详细介绍二叉树的非递归先序遍历算法,同时提供完整的C语言代码示例。通过本文,您将了解到二叉树的先序遍历算法,以及非递归实现的方式。 一、二叉树的先序遍历算法介绍 在介绍二…

    编程 2025-04-28

发表回复

登录后才能评论