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日

相关文章

  • asp.net+ajax的Post请求实例

    下面是关于“ASP.NET+Ajax的post请求实例”的攻略。 什么是Ajax? Ajax(Asynchronous JavaScript and XML)是一种用于创建 Web 应用的技术。它可以让浏览器不重新加载整个页面的情况下,动态地更新页面上的一部分内容。使用 Ajax 技术可以使网页更加流畅和响应。 什么是ASP.NET? ASP.NET 是一种…

    JavaScript 2023年6月11日
    00
  • 史上最全JavaScript数组去重的十种方法(推荐)

    下面是对于“史上最全JavaScript数组去重的十种方法(推荐)”这篇文章的详细讲解。 1. 引言 文章介绍了在JavaScript中使用十种方法对数组进行去重的详细解析,旨在让读者学会如何在实际开发中解决数组去重问题。 2. 数组去重方法 2.1 使用Set 使用Set可以很方便地对数组进行去重,因为Set内部的元素是唯一的,所以会自动去除重复元素。 c…

    JavaScript 2023年5月27日
    00
  • JavaScript实现的简单幂函数实例

    下面是JavaScript实现的简单幂函数实例的完整攻略。 标题 JavaScript实现的简单幂函数 代码块 下面是实现幂函数的JavaScript代码块: function pow(x, n) { let result = 1; for (let i = 0; i < n; i++) { result *= x; } return result; …

    JavaScript 2023年5月28日
    00
  • JavaScript对象学习小结

    下面是关于“JavaScript对象学习小结”完整攻略的详细讲解。 一、对象 JavaScript 中的对象是一组属性的集合,其中每个属性通过键与值相关联。可以通过多种方式创建对象。 1.1 对象的创建 可以使用对象字面量创建对象,对象字面量是一个逗号分隔的键值对的列表,放在花括号中。 例如: var student = { name: ‘Tom’, age…

    JavaScript 2023年5月27日
    00
  • javascript判断变量是否有值的方法

    当我们使用JavaScript编程时,有时候需要判断一个变量是否具有值。在这种情况下,我们需要使用不同的方法来检查它是否具有值。下面就是“JavaScript判断变量是否有值的方法”的完整攻略。 方法一:typeof操作符 typeof操作符可以用来检测一个变量的类型。当变量值为undefined时,typeof会返回”undefined”。这意味着我们可以…

    JavaScript 2023年6月10日
    00
  • RegExp 随笔 JavaScript RegExp 对象

    RegExp 随笔 JavaScript RegExp 对象 RegExp 对象在 JavaScript 中用于执行正则表达式的匹配。本文将为您介绍 RegExp 对象的使用、创建、使用方法和属性等内容。 RegExp 对象的创建 由于正则表达式是用特殊的语法来描述字符串模式的,因此我们需要先定义一个字符串作为正则表达式的模式描述,然后使用 RegExp 对…

    JavaScript 2023年5月28日
    00
  • 容易造成JavaScript内存泄露几个方面

    当我们编写JavaScript代码时,由于JavaScript的垃圾回收机制和内存管理机制的不足,可能会导致内存泄漏的问题。下面是容易造成JavaScript内存泄露的几个方面: 1. 没有处理事件和定时器 当我们注册事件和定时器时,如果没有另外处理它们,这些事件和定时器会一直存在,直到页面卸载。如果存在大量事件和定时器,可能会导致内存泄漏的问题。为了解决这…

    JavaScript 2023年6月10日
    00
  • 什么是cookie?js手动创建和存储cookie

    关于”什么是cookie”的讲解: Cookie指的是一种服务器发送给浏览器的小型文本文件,在浏览器端保存用户的登录状态、购物车信息等。在下次用户访问同样的网站时,浏览器会将存在本地的Cookie信息发送给服务器,服务器根据接收到的Cookie信息来进行相应的处理。 Cookie有以下特点:- Cookie由服务器生成,浏览器存储。- 每次请求时需要将Coo…

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