三种在ES6中将非数组转换为数组的方法详情
作者:猪痞恶霸 发布时间:2024-04-16 08:55:06
前言:
我们常常想使用数组的方法,比如forEach
,filter
,又或者some
等等来处理非数组的数据类型,那么在这些场景下,我们就需要将非数组转换为数组,而在ES6新增了三种数组转换方法,分别为**Array.form()
** ,Array.of()
与扩展运算符,三种转换方法各有不同的转换对象,下面我们来分别看看。
Array.from()
转换数组方法Array.from()
可以将对象转化为真正的数组,对象包括了两种,分别是:类数组对象与含有迭代器的对象
类数组对象转换实例
类数组对象的表现形式是以0,1数字作为键的一种对象形式,而使用Array.from()
转换后,它的值将被转换为数组形式
let arrObj = {
"0": "猪痞恶霸",
"1": "fzf404",
length:2
};
let arr = Array.from(arrObj);
console.log(arr); // ['猪痞恶霸', 'fzf404']
如上,我们定义了一个arrObj
的类数组对象,通过Array.from()
转换方法将其转换为数组得到['猪痞恶霸', 'fzf404']
。
可能读者看到这里想说:转换成数组有什么用途啊,不能光学语法是不是,那么下面来看类数组对象转换数组真正的实际应用。
类数组对象转换应用
在开发中,我们操作DOM会用到节点列表,通过document.querySelectorAll()
获取,如下图,可以清晰得了解到,我们拿到的节点列表是类数组对象,所以无法直接使用数组的一些方法,比如forEach
,又或者是filter
等等。
所以需要使用Array.form()
方法将其转换为真正的数组,再使用数组方法进行一些额外操作
含有迭代器对象转换实例
Array.form()
还可以将含有迭代器的对象转换为真正的数组,比如字符串,map
或者是set
,下面来看看它的使用
let str = "猪痞恶霸"
let strArr = Array.from(str)
console.log(strArray) // [ '猪', '痞', '恶', '霸' ]
拿字符串举例,转换为数组后,每个元素对应着字符串每一个字符,我们之前经常为切割字符串而烦恼,需要去使用正则切割,现在只需要Array.from(str)
一行代码来完成字符串的割离。
这里的应用我不再举例,转换数组应用的本质都是为了更好地使用数组的方法去操控处理数据,而Array.from
还有第二个参数
Array.from()的第二个参数
第二个参数比较像数组的map
方法,作为一个回调函数来处理转换后数据的每一个元素
let str = "猪痞恶霸"
let _str = Array.form(str, (item) => {
return item+item
})
console.log(_str) // [ '猪猪', '痞痞', '恶恶', '霸霸' ]
上面的操作,我模拟了字符串的处理,常常可以使用正则处理字符串,当然这就可以联想到我们可以使用这种方法来处理用户输入的内容,也可以防御恶意输入的产生。
来源:https://juejin.cn/post/7124869858289778701
猜你喜欢
- 内容摘要:图片切换效果在网页制作中经常被使用,好的切换效果不仅增加了网站的实用行也提升了网站的趣味性。而图片切换方法有的使用flash来实现
- 1.文件打开与关闭在python,使用open函数,可以打开一个已经存在的文件,或者创建一个新文件open(文件名,访问模式)。 f = o
- 数据安全是任何数据服务解决方案中的一个关键要求,而Windows Server 2008和SQL Server 2008结合起来,通过一个基
- 目录前言filestools库介绍一行代码给图片加水印总结前言版权相当重要,对于某张图片,可能是你精心制作的思维导图,或者你精心设计的某个l
- 1.func Fields(s string) []string,这个函数的作用是按照1:n个空格来分割字符串最后返回的是[]string的
- 内容摘要:本文介绍了使用CSS结合javascript来实现对超链接的类型进行标注,让浏览者明确是zip,doc,pdf或其它格式的文件。这
- Django的ORM是非常好用的,哪怕不是做Web项目也值得一用,所以网上也可以找到不少使用 Django 开发非Web项目的资料,因为除了
- 本文实例讲述了MySQL使用外键实现级联删除与更新的方法。分享给大家供大家参考,具体如下:MySQL支持外键的存储引擎只有InnoDB,在创
- 本文实例讲述了Python通过PIL获取图片主要颜色并和颜色库进行对比的方法。分享给大家供大家参考。具体分析如下:这段代码主要用来从图片提取
- 执行时间方法1import datetimestarttime = datetime.datetime.now()#long running
- 本文实例讲述了Python调用C语言的方法。分享给大家供大家参考,具体如下:Python中的ctypes模块可能是Python调用C方法中最
- 本文实例讲述了golang使用sort接口实现排序的方法。分享给大家供大家参考,具体如下:今天看见群里再讨论排序的sort.Interfac
- 富文本编辑器,Rich Text Editor, 简称 RTE, 它提供类似于 Microsoft Word 的编辑功能,容易被不会编写 H
- 代码如下:--相信大家肯定经常会把数据导入到数据库中,但是可能会有些记录行的所有列的数据是null,这为null的数据是我们不需要 --现在
- 前言Stream 是一个基于 Go 1.18+ 泛型的流式处理库, 它支持并行处理流中的数据. 并行流会将元素平均划分多个的分区, 并创建相
- 训练用PyTorch编写的LSTM或RNN时,在loss.backward()上报错:RuntimeError: Trying to bac
- 问题:如何把具有相同字段的记录删除,只留下一条。 例如:表test里有id,name字段,如果有name相同的记录只留下一条,
- 本文实例讲述了Python实现定制自动化业务流量报表周报功能。分享给大家供大家参考,具体如下:一 点睛本次实践通过定制网站5个频道的流量报表
- 自动追踪算法,在我们设计2D射击类游戏时经常会用到,这个听起来很高大上的东西,其实也并不是军事学的专利,在数学上解决的话需要去解微分方程,这
- 如下所示:#!/usr/bin/env python# -*- coding: utf-8 -*-# @Time : 2018/7/13 1