js中的Array.from()和Array.of()方法的用法详情

在这里插入图片描述

😁 作者简介:一名大四的学生,致力学习前端开发技术
⭐️个人主页:夜宵饽饽的主页
❔ 系列专栏:JavaScript小贴士
👐学习格言:成功不是终点,失败也并非末日,最重要的是继续前进的勇气

​🔥​前言:

本文是关于Array.from方法和Array.of方法的运用,这是一种创建数组和类型转化成数组的方法,希望可以帮助到大家,欢迎大家的补充和纠正

文章目录

    • 8.2 Array.from()
      • 8.2.1 含义
      • 8.2.3 应用
      • 8.2.4 实例
    • 8.3 Array.of()
    • 8.3 最后:

8.2 Array.from()

8.2.1 含义

Array.from方法用于将两类对象转为真正的数组

  1. 类似数组的对象,比如:DOM操作返回的NodeList集合,以及函数内部的arguments对象
  2. 可遍历(iterable)对象(包括ES6新增的数据结构Set和Map)

Array.from 还可以接受第二个参数,作用类似于数组的map方法,用来对每个元素进行处理,将处理后的值放入返回的数组

Array.from(arrayLike,x=>x*x)//等同于
Array.from(arrayLike).map(x => x*x)

⭐️ Array和扩展运算符的区别

先解释何为类似数组对象的:本质特征只有一点,即必须有 length属性

扩展运算符: 其背后调用的是遍历器接口(Symbo.iterator),如果一个对象没有部署该接口,就无法转换

Array.from(): 其是支持类似数组对象,任何有length对象,都可以通过Array.from方法转换为数组,扩展运算符是无法转换这种情况的

Array.from({ length:3 })
//[undefined,undefined,undefined]

8.2.3 应用

  1. Array.from()可以将各种值转为真正的数组,并且提供map功能。这实际上意味着,只要有一个原始数据结构,就可以先对它的值进行处理,然后转成规范的数组结构,在使用数组方法进行操作
  2. Array.from()可以将字符串转为数组,然后返回字符串的长度,因为它可以正确处理各种Unicode字符,可以避免JavaScript将大于 、uFFFF的Unicode字符算作2个字符的bug

8.2.4 实例

//传入字符串
let str='foo'
let ex1=Array.from(str)
console.log(ex1)//传入Set类型的
const set=new Set(['foo','bar','baz','foo'])
let ex2=Array.from(set)
console.log(ex2)//传入Mao类型
const mapper=new Map([[1,2],[2,4],[4,8]
])
let ex3=Array.from(mapper)
console.log(ex3)//传入类数组对象
function f(){return Array.from(arguments)
}let ex4=f(1,2,3)
console.log(ex4)

8.3 Array.of()

📑 描述: 将一组值转为数组

Array.of(3,2,6) //[3,2,6]

使用细节:

这个方法主要是用于弥补数组构造函数Array()的不足,因为参数个数不同会导致Array()的行为差异

Array(3) //[, , ,]
Array(3,11,8) //[3,11,8]

Array只有当参数个数不少于2个时,Array()才会返回有参数组成的新数组

Array.of 基本上可以用来替代Array()或 new Array()

8.3 最后:

🌼下面推荐的两篇文章可以补充和扩展文章中涉及的知识点 😃

  • JavaScript的数组的扩展
  • 【ES6的标准入门】JavaScript中Set、Map与弱引用版本:WeakSet和WeakMap优雅的数据管理技巧

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/291716.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring Boot学习随笔- 拦截器实现和配置(HandlerInterceptor、addInterceptors)、jar包部署和war包部署

学习视频:【编程不良人】2021年SpringBoot最新最全教程 第十三章、拦截器 拦截器 :Interceptor 拦截 中断 类似于javaweb中的Filter,不过没有Filter那么强大 作用 Spring MVC的拦截器是一种用于在请求处理过程中进行预处理和后处理的机制。拦…

C# SQLite基础工具类

目录 1、安装System.Data.SQLite工具包 2、创建数据库 3、数据库的连接与断开 4、执行一条SQL语句 5、批量执行sql语句 6、返回首行首列值 7、执行sql语句返回datatable 1、安装System.Data.SQLite工具包 2、创建数据库 /// <summary> /// 数据库路径 …

量化交易学习笔记:XGBoost 在量化选股中的应用

一、引言 本篇文章通过借鉴传统机器学习算法——XGBoost——对相同的量价因子进行实验&#xff0c;方便与深度学习模型进行对比实践。 二、算法介绍 XGBoost 是在 Gradient Boosting&#xff08;梯度提升&#xff09;框架下实现的机器学习算法&#xff0c;全称为“极限梯度提…

文献速递:生成对抗网络医学影像中的应用—— CG-3DSRGAN:用于从低剂量PET图像恢复图像质量的分类指导的3D生成对抗网络

文献速递&#xff1a;生成对抗网络医学影像中的应用—— CG-3DSRGAN&#xff1a;用于从低剂量PET图像恢复图像质量的分类指导的3D生成对抗网络 本周给大家分享文献的主题是生成对抗网络&#xff08;Generative adversarial networks, GANs&#xff09;在医学影像中的应用。文献…

Sentinel 流量治理组件教程

前言 官网首页&#xff1a;home | Sentinel (sentinelguard.io) 随着微服务的流行&#xff0c;服务和服务之间的稳定性变得越来越重要。Sentinel 是面向分布式、多语言异构化服务架构的流量治理组件&#xff0c;主要以流量为切入点&#xff0c;从流量路由、流量控制、流量整形…

node实现简单的数据爬虫

前言 我使用的是墨迹天气的页面&#xff0c;因为这个使用的链接简单 页面结构简单并且大都是文字形式 第一步 打开墨迹天气网址 随便点开一个页面 点击F12或者鼠标右键点击检查 查看页面的信息 分析页面内容 使用文字所在的class和标签来定位 编写代码 配置express环境 …

SpringIOC之MethodBasedEvaluationContext

博主介绍&#xff1a;✌全网粉丝5W&#xff0c;全栈开发工程师&#xff0c;从事多年软件开发&#xff0c;在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战&#xff0c;博主也曾写过优秀论文&#xff0c;查重率极低&#xff0c;在这方面有丰富的经验…

飞天使-k8s知识点7-kubernetes升级

文章目录 验证新版本有没有问题需要安装的版本微微 1.20.6.0kubeadm upgrade plan 验证新版本有没有问题 查看可用版本的包 现有的状态 查看版本 yum list kubeadm --showduplicates |grep 1.20 yum list kubelet --showduplicates |grep 1.20 yum list kubectl --showduplic…

随机森林 2(决策树)

通过 随机森林 1 的介绍&#xff0c;相信大家对随机森林都有了一个初步的认知&#xff0c;知道了随机和森林分别指的是什么&#xff0c;以及决策树根据什么选择内部节点。本文将会从森林深入到树&#xff0c;去看一下决策树是如何构建的。网上很多文章都讲了决策树如何构建&…

Linux笔记---文件和目录操作

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a;Linux学习 ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 前言 命令 ls (List): pwd (Print Working Directory): cp (Copy): mv (Move): rm (Remove): 结语 我的其他博客 前言 学习Linux命令…

tcp 的限制 (TCP_WRAPPERS)

#江南的江 #每日鸡汤&#xff1a;青春是打开了就合不上的书&#xff0c;人生是踏上了就回不了头的路&#xff0c;爱情是扔出了就收不回的赌注。 #初心和目标&#xff1a;拿到高级网络工程师 TCP_WRAPPERs Tcp_wrappers 对于七层模型中是位于第四层的安全工具&#xff0c;他…

版本化数据库管理工具Flyway介绍和Spring Boot集成使用

文章目录 核心功能如何使用 Flyway最佳实践Spring Boot使用 Flyway 是一个版本化数据库管理工具&#xff0c;用于跟踪、管理和应用数据库的变化。它非常适合在团队开发环境中使用&#xff0c;其中多个人员可能会在数据库结构进行更改。Flyway 通过版本控制可以帮助你确保所有人…