JavaScript中Array.from()的超全用法详解

JavaScript中Array.from()的超全用法详解

什么是Array.from()

Array.from()是ECMAScript6中新增的一个方法,可以将类数组对象和可迭代对象(如Set、Map)转换成真正的数组,方便对数据进行操作。

Array.from()的语法结构

Array.from(iterable[, mapFn[, thisArg]]),其中参数说明如下:

  • iterable:需要转换成数组的数组类对象或可迭代对象。
  • mapFn:(可选)用来对每个元素进行处理的函数。
  • thisArg:(可选)执行mapFn函数时的this对象。

使用Array.from()将类数组对象转为数组

示例:

function foo() {
  const args = Array.from(arguments) // 转换arguments为真正的数组
  console.log(args)
}

foo(1, 2) // 输出 [1, 2]

这里将arguments对象转换为真正的数组,便于对其进行操作。

再看一个更加直观的示例:

const divList = document.querySelectorAll('div')
const divArray = Array.from(divList)

使用document.querySelectorAll会返回一个类数组对象,使用Array.from()可以将其转换为数组。

使用Array.from()将可迭代对象转为数组

示例:

const set = new Set(['a', 'b', 'c'])
const arrSet = Array.from(set)
console.log(arrSet) // 输出 ['a', 'b', 'c']

这里将Set对象转换为了数组arrSet。

使用Array.from()的第二个参数

第二个参数mapFn是一个函数,用于对数组中每个元素进行处理,可以很方便地对数据进行转换。

示例:

const arr = [1, 2, 3]
const newArr = Array.from(arr, x => x * 2)
console.log(newArr) // 输出 [2, 4, 6]

这里将arr中的每个元素都乘以2,然后返回了新的数组newArr。

使用Array.from()的第三个参数

第三个参数thisArg是用于指定函数中的this指向的对象,这个在复杂场景中非常适用。

示例:

const arr = [1, 2, 3]
const obj = {
  factor: 2,
  double(value) {
    return value * this.factor
  },
}
const newArr = Array.from(arr, obj.double, obj)
console.log(newArr) // 输出 [2, 4, 6]

在这里,Array.from()调用obj.double()方法作为遍历函数,指定obj对象作为this值。

总结

  • Array.from()方法是将类数组对象和可迭代对象(如Set、Map)转换成真正的数组。
  • Array.from()方法的语法结构非常简单,可以通过第二个参数和第三个参数进行更灵活的操作。
  • 使用Array.from()可以更加方便地对数据进行操作。

以上就是JavaScript中Array.from()的超全用法详解,希望对你们有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript中Array.from()的超全用法详解 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • Javascript & DHTML DOM基础和基本API第5/5页

    《Javascript & DHTML DOM基础和基本API》是一本介绍JavaScript和DHTML的书籍,其中包含了JavaScript和DHTML DOM的基础和API,本攻略将对第5/5页进行详细解读。 1. 什么是DOM? DOM(Document Object Model)是HTML和XML文档的编程接口,它将整个页面抽象成一个树状结…

    JavaScript 2023年6月10日
    00
  • 九个超级好用的Javascript技巧

    九个超级好用的Javascript技巧 Javascript是一门非常强大的语言,但是也有它的一些不足之处。在长时间的开发过程中,我们掌握了一些技巧,能够让我们更好地利用这门语言。以下是九个超级好用的Javascript技巧,让你的代码变得更精简、易读、高效。 把布尔值用!!转化 在Javascript中,我们可以通过使用两个非符号将任何值转化为布尔值。例如…

    JavaScript 2023年6月10日
    00
  • AngularJS使用ngMessages进行表单验证

    好的!那么在这里我将详细为您讲解如何使用AngularJS中的ngMessages模块进行表单验证。 什么是ngMessages? ngMessages是AngularJS模块中的一种指令,用于在UI层面进行表单验证。ngMessages会根据验证不通过时的条件,自动输出相应的错误消息。这样可以极大地方便用户填写表单,并且提示信息是根据具体情况显示的,让用户…

    JavaScript 2023年6月10日
    00
  • JavaScript正则表达式和级联效果

    JavaScript正则表达式是一种强大的文本处理工具,可以帮助我们快速查找、替换并验证字符串。级联效果是指在表单中使用多个输入框时,前后输入框的内容之间会有一定的联系和限制。下面是JavaScript正则表达式和级联效果的详细攻略。 JavaScript正则表达式 什么是正则表达式 正则表达式即为RegExp对象,通过正则表达式可以匹配字符串并且进行替换。…

    JavaScript 2023年6月10日
    00
  • javascript dom操作之cloneNode文本节点克隆使用技巧

    JavaScript DOM操作之cloneNode文本节点克隆 在JavaScript中,有时需要在DOM操作中克隆一个节点,cloneNode()方法就是帮助我们实现节点克隆的方法。cloneNode()方法可以深克隆节点及其包含的所有子节点,除了子节点的文本内容,但通过cloneNode()方法,我们还可以克隆文本节点。本篇攻略主要讲述cloneNod…

    JavaScript 2023年6月10日
    00
  • Javascript Math cos() 方法

    JavaScript中的Math.cos()方法用于返回一个数的余弦值。该方法接受一个参数,即要计算余弦值的角度,单位为弧度。以下是关于Math.cos()方法的完整攻略,包括两个示例。 JavaScript Math对象的cos()方法 JavaScript Math对象中的cos()方法用于返回一个数的余弦值。该方法接受一个参数,即要计算余弦值的角度,单…

    JavaScript 2023年5月11日
    00
  • 浅谈 javascript 事件处理

    浅谈 JavaScript 事件处理 事件处理是 JavaScript 中非常重要的一个概念,涵盖了很多方面的知识,比如事件的冒泡、捕获、绑定、解绑等等。本文将从以下几个方面介绍 JavaScript 事件处理的相关内容。 1. 事件类型 JavaScript 支持多种类型的事件,其中常见事件类型包括: 鼠标事件:click、mousedown、mouseu…

    JavaScript 2023年5月18日
    00
  • 详解jQuery的Cookie插件

    详解jQuery的Cookie插件攻略 1. 介绍 jQuery的Cookie插件是一个实用的、轻量的JavaScript工具,用于操作浏览器中的cookie(饼干)。该插件可用于读取、设置、删除和检查cookie,它为cookie操作提供了简洁的API接口,使得开发者能够轻松地处理cookie数据。 2. 安装 你可以从GitHub上下载该插件的最新版本,…

    JavaScript 2023年6月11日
    00
合作推广
合作推广
分享本页
返回顶部