ES6 中 Array.from() 方法详解及应用

在 ES6 中,新增了一个 Array.from() 方法,用于将类数组对象或可迭代对象转换成数组。本文将详细介绍该方法的用法及应用。

语法

Array.from(obj[, mapFn[, thisArg]])

  • obj:必选项,要转换成数组的对象。
  • mapFn:可选项,类似于 Array.prototype.map() 方法的回调函数,用于对数组元素进行转换。
  • thisArg:可选项,mapFn 回调函数中的 this 指向。

示例

将类数组对象转换为数组

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

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

将可迭代对象转换为数组

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

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

使用 mapFn 对数组元素进行转换

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

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

使用 thisArg 指定 mapFn 回调函数中的 this 指向

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

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

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

应用

将 NodeList 转换为数组

在 DOM 操作中,经常会用到 NodeList 对象,该对象是一个类数组对象,可以使用 Array.from() 方法将其转换为数组。

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

将 arguments 对象转换为数组

在函数内部,可以使用 arguments 对象获取所有传入的参数,该对象也是一个类数组对象,可以使用 Array.from() 方法将其转换为数组。

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

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

将字符串转换为数组

使用 Array.from() 方法可以将字符串转换为数组,每个字符成为数组的一个元素。

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

总结

Array.from() 方法可以将类数组对象或可迭代对象转换为数组,并且可以对数组元素进行转换。在实际开发中,该方法可以用于将 NodeList、arguments 对象、字符串等转换为数组,方便我们进行后续的操作。

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


猜你喜欢

  • 深度测试 JavaScript 代码:使用 Chai-Deep-Equal

    在前端开发中,测试是非常重要的一环。而在测试中,对于 JavaScript 代码的深度测试也是必不可少的一项。在这篇文章中,我们将介绍如何使用 Chai-Deep-Equal 来进行 JavaScri...

    1 年前
  • Custom Elements 中如何获取自定义元素的属性值

    在前端开发中,我们经常需要自定义一些 HTML 元素,以满足特定的需求。而 Custom Elements(自定义元素)就是一种能够让我们创建自定义 HTML 元素的技术。

    1 年前
  • 解决 Lambda 函数中的内存泄漏问题

    前言 在 AWS Lambda 中使用 Node.js 编写函数时,我们可能会遇到内存泄漏的问题。内存泄漏是指程序在使用完一块内存后,没有将其释放,导致系统中的可用内存不断减少,最终导致程序崩溃。

    1 年前
  • 利用 Express.js 构建一个猫咖分享站的实践经验分享

    在这个时代,养宠物已经成为越来越多人的生活方式。其中养猫的人群也越来越多,而猫咖则是养猫人士们的一个非常受欢迎的聚集地。本文将介绍如何利用 Express.js 构建一个猫咖分享站,帮助大家更好地分享...

    1 年前
  • 基于 Hapi.js 和 Socket.io 的 Group Chat 实践

    在前端开发中,实时聊天功能是非常常见的需求。而实现实时聊天功能的关键就在于如何建立一个稳定高效的 WebSocket 连接。本文将介绍如何使用 Hapi.js 和 Socket.io 来构建一个简单的...

    1 年前
  • 搭配 gulp 使用 LESS 时报错:找不到 less 文件

    背景 在前端开发中,我们经常使用 gulp 来自动化构建项目,而 LESS 是一种 CSS 预处理器,可以让我们更方便地编写 CSS。使用 gulp 搭配 LESS 可以让我们更加高效地开发项目。

    1 年前
  • Next.js 中的路由配置详解

    在 Next.js 中,路由是非常重要的一部分。它决定了页面的访问路径,也影响着页面的渲染和数据获取。本文将详细介绍 Next.js 中的路由配置,包括路由的基本使用、动态路由、嵌套路由等内容。

    1 年前
  • Vue.js 单页面应用路由动画实现

    引言 Vue.js 是一款流行的前端框架,它提供了丰富的功能和工具,帮助开发者构建复杂的单页面应用。其中,路由是一个重要的组成部分,它可以让用户在应用中进行导航,访问不同的页面。

    1 年前
  • PWA 在实际项目中如何检测并解决常见的性能问题?

    随着移动设备的普及,越来越多的网站和应用开始采用 PWA 技术来提供更好的用户体验。PWA(Progressive Web Apps)是一种基于 Web 技术的应用程序,可以在离线状态下运行,并具有类...

    1 年前
  • ES211 中 Promise.Resolve() 方法的默认值详解

    在 ES211 中,Promise.Resolve() 方法是一个非常重要的方法,它可以将一个普通的值或一个 Promise 对象转化为一个 Promise 对象。

    1 年前
  • 如何正确地使用 ES7 的 async/await 语法

    随着 JavaScript 语言的不断发展,ES7 引入了 async/await 语法,使得异步编程变得更加简单和易懂。然而,正确地使用 async/await 语法并不是一件容易的事情,需要我们对...

    1 年前
  • 如何运用 SASS 来兼容不同屏幕大小

    随着移动设备的普及,越来越多的用户使用手机和平板电脑来访问网站。这就需要我们的网站能够兼容不同屏幕大小的设备,以提供更好的用户体验。在前端开发中,SASS 是一个非常好用的工具,可以帮助我们更好地管理...

    1 年前
  • ES9 中的 catch 绑定和 finally 子句调用顺序

    在 ES9 中,try/catch/finally 语句的行为有了一些改变。其中最重要的变化是,现在可以在 catch 子句中绑定错误对象,而不仅仅是在 finally 子句中。

    1 年前
  • ES8 Object.keys 与 Object.values 与 Object.entries 的区别

    在 ES8 中,JavaScript 引入了三个新的 Object 方法:Object.keys()、Object.values() 和 Object.entries()。

    1 年前
  • VuePress 详解 —— 基于 Webpack 知识探讨

    VuePress 是一个基于 Vue.js 的静态站点生成器,它使用了 Webpack 和一些其他的工具来提供了一个开箱即用的开发环境。VuePress 的设计初衷是为了解决文档编写和发布的问题,它使...

    1 年前
  • 解决 CSS Reset 对文字垂直居中的问题

    在前端开发中,我们经常会使用 CSS Reset 来消除浏览器默认样式,从而在不同浏览器中实现一致的页面展示。然而,CSS Reset 也会对文字的垂直居中造成影响,导致文字无法按照预期居中。

    1 年前
  • Kubernetes 中的容器关联性网络

    Kubernetes 是一个流行的容器编排平台,它提供了一种简单而强大的方式来管理容器化应用程序。在 Kubernetes 中,一个应用程序通常由多个容器组成,这些容器需要相互通信。

    1 年前
  • RxJS:你要知道 catchError、catch 和 retry 它们三者之间的区别

    RxJS 是一个非常流行的 JavaScript 库,它提供了一种响应式编程的方式,以更简单、更可靠的方式处理异步数据流。在 RxJS 中,常常需要处理错误和重试,而 catchError、catch...

    1 年前
  • RESTful API 中如何使用缓存减轻服务器压力

    随着 Web 应用的不断发展,RESTful API 已经成为了现代 Web 应用的核心技术之一。RESTful API 通过提供简单的 HTTP 接口,使得客户端可以通过 HTTP 协议来访问服务端...

    1 年前
  • MongoDB与Docker集成实现方式分析

    随着云计算技术的发展,Docker已经成为了一种常见的容器化解决方案。而MongoDB作为一种非关系型数据库,也越来越受到前端开发者的关注。本文将介绍如何将MongoDB与Docker集成,使得前端开...

    1 年前

相关推荐

    暂无文章