如何使用 ES8 的 Object.entries() 和 Object.values() 方法

简介

ES8(ECMAScript 2017)是 ECMAScript 标准化的第八个版本,引入了许多新的特性和语法。其中,Object.entries() 和 Object.values() 是两个非常实用的方法,用于获取对象中所有属性(键值对)的值。本篇文章将详细介绍它们的用法以及如何在前端开发中使用它们。

Object.entries() 方法

Object.entries() 方法返回一个给定对象自身可枚举属性的键值对数组,其排列顺序与使用 for...in 循环遍历该对象时返回的顺序一致(数字属性按升序排列在数组的前面)。每个键值对都是一个数组,第一个元素是属性名称,第二个元素是属性值。

下面是 Object.entries() 方法的示例代码:

----- --- - - ---- ------ ---- -- --
--------------------------------- -- - ------- ------- ------- --- -

在这个示例中,Object.entries() 方法返回了一个数组,包含 obj 对象的两个属性的键值对数组。第一个键值对是 ['foo', 'bar'],其中 'foo' 是属性名称,'bar' 是属性的值。第二个键值对是 ['baz', 42],其中 'baz' 是属性名称,42 是属性的值。

Object.entries() 方法还可以与数组解构语法一起使用,将键值对数组的属性名称和属性值分别赋值给变量。示例代码如下:

----- --- - - ---- ------ ---- -- --
--- ------ ----- ------ -- -------------------- -
  -------------------- ----------- -- ---- ---- ---- --
-

在这个示例中,使用 for...of 循环遍历 obj 对象的每个属性的键值对数组。每次迭代时,使用数组解构从键值对数组中分别赋值给 key 和 value 变量。然后,将变量用于输出键值对的属性名称和属性值。

Object.values() 方法

与 Object.entries() 方法返回属性的键值对数组不同,Object.values() 方法返回一个给定对象自身的可枚举属性值的数组,其排列顺序与使用 for...in 循环遍历该对象时返回的一致(数字属性按升序排列在数组的前面)。

下面是 Object.values() 方法的示例代码:

----- --- - - ---- ------ ---- -- --
-------------------------------- -- ------- ---

在这个示例中,Object.values() 方法返回了一个数组,包含 obj 对象的两个属性的属性值。第一个属性值是 'bar',它是属性 foo 的值。第二个属性值是 42,它是属性 baz 的值。

Object.values() 方法还可以与数组解构语法一起使用,将属性值依次赋值给数组中的变量。示例代码如下:

----- --- - - ---- ------ ---- -- --
--- ------ ----- -- ------------------- -
  ------------------- -- ---- --
-

在这个示例中,使用 for...of 循环遍历 obj 对象的每个属性的属性值数组。每次迭代时,将属性值赋值给 value 变量。然后,输出 value 变量的值。

使用示例

Object.entries() 和 Object.values() 方法非常实用,可以用于在开发中快速获取对象的所有属性的值。下面是一些使用示例:

迭代属性值数组

----- --- - - ---- ------ ---- -- --
--- ------ ----- -- ------------------- -
  ------------------- -- ---- --
-

计算属性值数组的总和

----- --- - - ---- -- ---- -- ---- - --
----- --- - ------------------------------- ----- -- --- - ------
----------------- -- -

将对象转换为 URL 查询字符串

----- ------ - - ---- ------ ---- -- --
----- ----------- - ----------------------
  ----------- ------- -- ----------------------------------------------------------
  -----------
------------------------- -- ----------------

总结

本篇文章介绍了 ES8 中的 Object.entries() 和 Object.values() 方法,详细介绍了它们的用法和示例代码。这两个方法对于在前端开发中快速获取对象的所有属性的值非常有用。在实际开发中,可以结合数组解构语法和其他 JavaScript 方法一起使用,实现更加高效和灵活的编程。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/647d4541968c7c53b0814cb4


猜你喜欢

  • ES10 新特性详解(高清大图)

    随着前端行业的发展,ES 新特性不断涌现,使得 JavaScript 越来越强大、更易用。ES10 是 JavaScript 最新的版本,其中包含了许多新特性,值得前端工程师们学习和掌握。

    1 年前
  • Koa2 开发过程中解决 “callback must be a function” 问题

    在 Koa2 开发过程中,当尝试使用某些函数时,有时可能会遇到 “callback must be a function” 的错误提示。这个错误通常会发生在异步回调函数传递的参数不正确时。

    1 年前
  • 如何使用 LESS 编写复杂渐变效果

    前端工程师在设计页面时,经常需要使用渐变效果,让页面更加美观,增强视觉效果。而 LESS 是一种动态样式语言,可以帮助我们更方便地编写样式,有利于提高开发效率。本篇文章将介绍如何使用 LESS 编写复...

    1 年前
  • Mongoose 中的查询函数

    Mongoose 是一个用于 Node.js 的优秀 MongoDB 对象模型工具。在实际应用中,我们需要对 MongoDB 数据库中的数据进行查询、修改和删除等操作,而 Mongoose 中的查询函...

    1 年前
  • 如何在 Angular 中处理 HTTP 拦截器

    前言 在 Angular 应用中,我们常常需要与后端服务器进行数据交互,而这种交互通常是通过 HTTP 协议进行的。在 HTTP 请求的过程中,我们可能想对请求做一些额外的处理,比如添加请求头、统一处...

    1 年前
  • PM2 监控多进程 Node.js 服务的网络状况

    随着互联网的发展,越来越多的应用使用 Node.js 作为后端技术栈。而随着业务的增长,单进程 Node.js 应用的瓶颈也日益显现。为了充分利用多核处理器带来的性能优势,前端开发人员需要使用 PM2...

    1 年前
  • 快速入门 Headless CMS

    随着现代 Web 应用的发展,越来越多的项目采用了 Headless CMS 技术。Headless CMS 与传统 CMS 最大的不同在于:传统 CMS 是预定义好了整个网站的结构,而 Headle...

    1 年前
  • 如何使用 Material Design 实现自定义对话框

    Material Design 是一种由 Google 推出的设计风格,主要体现在 Android 系统中。这种设计风格以平面、简洁和明亮的颜色为特点,同时为用户提供更好的操作体验。

    1 年前
  • 利用 JIT 进行 Java 程序性能优化

    随着计算机技术的不断发展,软件性能成为了一个极为重要的指标。对于 Java 开发人员来说,进行程序性能优化是必不可少的一项工作。其中,利用 JIT 技术进行性能优化显得尤为关键。

    1 年前
  • Tailwind CSS 中如何设置宽度?

    Tailwind CSS 是一个非常流行的 CSS 框架,提供了丰富的 CSS 类,使得前端开发工作变得更加高效和便捷。在 Tailwind CSS 中,宽度是一个非常重要的属性,我们可以使用各种类来...

    1 年前
  • 如何使用 ECMAScript 2017 (ES8) 中的 Async Functions 和 Await Operators

    ECMAScript 2017 (ES8) 为 JavaScript 增加了许多新特性,其中最重要的就是 Async Functions 和 Await Operators,它们使得编写异步代码更加简...

    1 年前
  • CSS Grid 如何实现银行卡布局

    CSS Grid 是现代网页布局的标准方式之一,它提供了一种强大的布局系统,允许我们创建复杂的页面布局。本文将介绍如何使用 CSS Grid 来实现银行卡布局。 银行卡布局简介 我们经常会在银行的网站...

    1 年前
  • 在 Express.js 中使用 Pug 模板引擎:动态渲染

    概述 在 Web 开发过程中,模板引擎是非常重要的一环。传统的 HTML 模板缺乏动态渲染的能力,无法动态生成页面,难以应对实时性要求高的场景。而 Pug(旧名 Jade)作为一种高度优化的模板引擎,...

    1 年前
  • 如何用 Vue.js 实现 kendo-ui 的样式

    Kendo UI 是 Telerik (现在是 Progress)开发的一套企业级前端框架,包括大量的 UI 组件和 JS 功能,非常实用和强大。Vue.js 是一套轻量级的 JavaScript 前...

    1 年前
  • MongoDB 教程:如何使用 MongoDB Compass

    MongoDB是一款流行的NoSQL数据库,它能够轻松存储和管理大规模的非结构化数据。为了方便地管理这些数据,MongoDB推出了自己的管理工具——MongoDB Compass。

    1 年前
  • Kubernetes 中如何使用 Taint 和 Toleration 进行节点污点管理?

    在 Kubernetes 集群中,每个节点都会有一些资源(CPU、内存、磁盘、网络等)可供使用。在实际应用中,我们可能会遇到资源使用不均匀的情况,比如有些节点的 CPU 负载很高,而有些节点则相对空闲...

    1 年前
  • PWA 开发中极易出现的 7 个问题及解决方案

    现代 Web 应用日趋复杂,为了提供良好的用户体验,越来越多的开发者开始尝试使用 PWA 技术(Progressive Web App,渐进式 Web 应用程序)来构建 Web 应用程序。

    1 年前
  • 如何在 Deno 中实现 WebSockets?

    WebSockets 是一种用于实现双向通信的协议,允许在客户端和服务器之间传递消息。在前端开发中,WebSockets 可以用于实现实时聊天、实时更新等功能。而在 Deno 中,实现 WebSock...

    1 年前
  • 改善 Babel 在 Webpack 中的编译速度

    改善 Babel 在 Webpack 中的编译速度 随着前端技术的不断更新,我们越来越常常需要用到 Babel 来将 ES6+ 的代码转化成 ES5 的代码,以保证代码的兼容性。

    1 年前
  • 如何在 Hapi 应用程序中使用到 WebSockets

    如何在 Hapi 应用程序中使用到 WebSockets WebSockets 是一种网络协议,它允许浏览器和服务器之间进行实时的双向通信。在前端类中,使用 WebSockets 通常可以很好地增强用...

    1 年前

相关推荐

    暂无文章