理解 ECMAScript 2019 中的 Object.fromEntries 方法并在 JavaScript 中使用它

JavaScript 中的 Object.fromEntries 方法是在 ECMAScript 2019 版本中引入的。该方法的作用是将一个由键值对组成的数组转换为一个对象。在本文中,我们将深入探讨此方法,并展示它如何在 JavaScript 中使用。

Object.fromEntries 方法

Object.fromEntries() 方法接受一个由键值对组成的数组,并按照其顺序(key-value 的顺序)返回一个新的对象。它的应用场景多样,例如,可以从查询字符串(query string)中构造对象、转换 Map 到 Object 等等。

以下是它的基本语法:

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

其中,iterable 是一个由键值对组成的可迭代对象,比如 Array、Map,如下例所示:

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

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

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

从上述代码可以看出,我们定义了一个数组 entries,它包含三个键值对。我们将它传递给方法 Object.fromEntries 中,并得到了一个新的对象 obj

Object.fromEntries 方法的应用场景

查询字符串

在 JavaScript 中,可以使用 URLSearchParams 对象来解析查询字符串(query string),然后将它转换为对象。以下是一个将查询字符串转换为对象的例子:

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

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

从上述代码可以看出,我们首先创建了一个 URLSearchParams 对象并将查询字符串传递给它。然后,我们将这个对象的所有键值对作为数组返回,并将其传递给 Object.fromEntries 方法来得到一个新对象。

Map 转换为 Object

JavaScript 中的 Map 是一种特殊的对象类型,它是由键值对组成的集合。通常,开发者在处理数据时会用 Map 类型来存储数据,最终需要将它转换为一个纯 JavaScript 对象,此时可以使用 Object.fromEntries 方法。

以下是将 Map 转换为对象的例子:

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

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

从上述代码可以看出,我们创建了一个 Map 并定义了两个键值对。然后我们将这个 Map 传递给 Object.fromEntries 方法,并得到了一个新的对象 obj

实际应用示例

以下是一个实际应用示例,它使用 Object.fromEntries 方法将表单序列化数据转换为一个对象:

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

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

从上述示例可以看出,我们首先创建了一个 FormData 对象,它包含表单中所有的输入控件。然后我们使用 entries 方法将它们转换为一个由键值对组成的数组,并最终调用 Object.fromEntries 方法将数组转换为对象。

总结

在本文中,我们学习了 ECMAScript 2019 中新增的 Object.fromEntries 方法,并展示了它的基本语法和应用场景。我们还提供了一些实际应用示例,以便读者了解它的使用方式。在实际开发中,可以将此方法运用到多种场景中,从而实现更高效的代码编写。

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


猜你喜欢

  • MongoDB 的 Javascript Shell 高级技巧

    前言 MongoDB 是一款非关系型数据库软件,采用 JSON 类型的文档格式存储数据。它目前在互联网行业中广泛使用,特别是在大数据领域中。对于前端开发者而言,MongoDB 的 Javascript...

    1 年前
  • 如何使用 Webpack 优化 SPA 应用的构建和打包

    随着 SPA (Single Page Application) 技术的发展,前端应用的复杂度也越来越高,对构建和打包工具的要求也越来越高。Webpack 是目前最流行的前端构建和打包工具之一,它不仅...

    1 年前
  • ESLint 如何检测代码中缺少注释

    前言 在开发过程中,代码的可读性非常重要。代码的可读性不仅包括代码风格、命名规范、代码的组织结构,还包括代码的注释。注释能够让代码更加易于理解和维护。 在前端领域,ESLint 已经成为了代码风格检查...

    1 年前
  • 使用 jest+enzyme 测试 React Native 组件中的异步 redux action

    React Native 是一个快速发展的移动开发框架。在开发应用程序时,使用 Redux 管理应用程序状态是一个通用的建议。但是,测试异步 Redux Action 可能会成为一个挑战。

    1 年前
  • 如何使用 Headless CMS 实现在线商店的商品管理和展示?

    随着互联网的发展和普及,越来越多的企业和商家开始进军网络市场,搭建自己的网店来进行商品销售。而作为网店的核心部分,商品管理和展示显得尤为重要,因此很多商家开始寻求一种高效、灵活的解决方案。

    1 年前
  • 使用 Kubernetes 实现分布式任务调度

    随着云计算和大数据技术的快速发展,分布式计算逐渐成为一个重要的方向。而分布式任务调度作为分布式计算的关键技术之一,为各种场景的任务处理提供了高效、稳定、可靠的支持。

    1 年前
  • PM2 学习笔记:如何有效管理多个 Node.js 服务?

    在前端开发中,我们通常需要运行多个 Node.js 服务来提供服务。而在生产环境中,管理和部署这些服务又是一个重要的问题。在本文中,我们将介绍 PM2 工具,并演示如何使用 PM2 工具有效管理多个 ...

    1 年前
  • Vue.js 中使用 Vue CLI 创建项目的方式

    Vue.js 是一款被广泛应用于现代 web 应用开发的 JavaScript 框架。随着 Vue.js 的使用越来越流行,Vue CLI 成为了一款经典工具,用于帮助开发者快速搭建基于 Vue.js...

    1 年前
  • 使用 Server-Sent-Events 和 Laravel 进行实时性状态更新

    前端的实时性状态更新是一个常见的需求,比如聊天室、股票行情等。在这些场景中,通常需要将后端的数据实时地推送给前端。本文将介绍如何使用 Server-Sent-Events (SSE) 和 Larave...

    1 年前
  • Chai 的 expect 断言中如何判断一个对象是否存在某个属性

    在进行前端开发的过程中,常常需要对某个对象是否存在某个属性进行判断。Chai是一款常用的测试框架,提供了多种灵活的断言方式来支持这种需求。本文将针对Chai的expect断言进行详细介绍。

    1 年前
  • Babel 编译 ES6 时遇到的 TypeError: Cannot set property 问题解决方法

    在前端开发中,我们经常会使用 ES6 的新特性来简化代码并提高效率。但是,在使用 Babel 编译 ES6 代码的过程中,可能会遇到这样的问题:TypeError: Cannot set proper...

    1 年前
  • 在 Jest 测试框架中如何测试 GraphQL 查询

    GraphQL 是一种用于 API 开发的查询语言和运行时,让前端开发者能够以一种更直观的方式来调用服务器数据。在使用 GraphQL 时,由于它的复杂查询量,测试也愈发重要,以确保查询功能的正确性。

    1 年前
  • 如何利用 Promise 处理 Ajax 请求的回调

    在前端开发中,我们经常会用到 Ajax 发送请求来获取数据,但是异步处理数据的过程中需要考虑数据返回的时间,同时也需要处理请求成功或者失败后的后续操作。那么如何利用 Promise 来处理 Ajax ...

    1 年前
  • Docker 镜像构建失败的原因与解决方法

    随着前端技术的发展,Docker 已成为前端开发中不可或缺的一部分。Docker 构建镜像是一项重要的任务,但是当镜像构建失败时,我们需要知道失败的原因,并采取适当的措施来解决问题。

    1 年前
  • Web Components 入门教程:掌握 Shadow DOM 的使用

    Web Components 是一项供开发者创建可重用 Web 组件的技术,它由 Custom Elements、Templates、Shadow DOM 和 HTML Import 等组成。

    1 年前
  • 解决在 Fastify 中使用 MongoDB 匹配错误的问题

    在 Fastify 应用程序中使用 MongoDB 进行数据存储是一种非常流行的方案。然而,如果你不小心使用了错误的匹配方式,那么你可能会在查询结果方面遇到一些问题。

    1 年前
  • 了解 ECMAScript 2021 (ES12) 中的 Promise.allSettled,让你的异步编程更加优雅

    在前端开发中,异步编程是非常常见的。以往我们可能需要使用 Promise.all 来解决多个异步请求的情况,但是 Promise.all 只有在所有 Promise 都 resolve 时才会返回一个...

    1 年前
  • 使用 Express.js 开发微信公众号的实践指南

    近年来,微信公众号已经成为多数企业互动和营销的必备工具之一。然而,想要开发一个高质量的微信公众号并不是一件简单的事情,需要开发者具备一定的前端技术巧妙和微信开发经验。

    1 年前
  • Material Design 中的 Input Text 下划线样式调整

    Material Design 是一种用于移动和 Web 应用程序的设计语言,它包含了许多有用的组件和类。其中一个重要的组件就是 Input Text,它用于收集用户输入的数据。

    1 年前
  • 如何在 ES9 中使用 Rest/Spread 属性,遇到 bug 该怎么办

    JavaScript 是一种动态语言,其语言特性的不断发展使其在开发领域愈加美妙。随着新语言特性的不断出现,开发者能够更加方便地实现想要的功能,并且代码变得更加清晰易读。

    1 年前

相关推荐

    暂无文章