es6新特性 - 数组新增拓展
二、数组新增拓展
- 扩展运算符的应用
- es6通过扩展运算符...,好比rest参数的逆运算,将一个数组转为用逗号分隔的参数序列(主要用于函数调用的时候,将一个数组变为参数序列;可以将某些数据结构转为数组,能够更简单实现数组复制,数组的合并也更为简洁)
- 扩展运算符可以与解构赋值结合起来,用于生成数组,如果将扩展运算符用于数组赋值,只能放在参数的最后一位,否则会报错(可以将字符串转为真正的数组)
- 定义了遍历器(Iterator)接口的对象,都可以用扩展运算符转为真正的数组,如果对没有Iterable接口的对象使用扩展运算符将会报错
- 构造函数新增的方法
- Array.from():将两类对象转为真正的数组:类似数组的对象和可遍历(iterable)的对象(包括 ES6 新增的数据结构 Set 和 Map)
可以接受第二个参数,用来对每个元素进行处理,将处理后的值放入返回的数组 - Array.of():用于将一组值,转换为数组
没有参数的时候,返回一个空数组
当参数只有一个的时候,实际上是指定数组的长度
参数个数不少于 2 个时,Array()才会返回由参数组成的新数组
- 实例对象新增的方法
- copyWithin():将指定位置的成员复制到其他位置(会覆盖原有成员),然后返回当前数组
target(必需):从该位置开始替换数据。如果为负值,表示倒数。
start(可选):从该位置开始读取数据,默认为 0。如果为负值,表示从末尾开始计算。
end(可选):到该位置前停止读取数据,默认等于数组长度。如果为负值,表示从末尾开始计算。 - find()、findIndex():find()用于找出第一个符合条件的数组成员
参数是一个回调函数,接受三个参数依次为当前的值、当前的位置和原数组
findIndex返回第一个符合条件的数组成员的位置,如果所有成员都不符合条件,则返回-1
这两个方法都可以接受第二个参数,用来绑定回调函数的this对象 - fill():使用给定值,填充一个数组
还可以接受第二个和第三个参数,用于指定填充的起始位置和结束位置
注意,如果填充的类型为对象,则是浅拷贝 - entries(),keys(),values():
keys()是对键名的遍历
values()是对键值的遍历
entries()是对键值对的遍历 - includes():用于判断数组是否包含给定的值
方法的第二个参数表示搜索的起始位置,默认为0
参数为负数则表示倒数的位置 - flat(),flatMap():将数组扁平化处理,返回一个新数组,对原数据没有影响
flat():默认只会“拉平”一层,如果想要“拉平”多层的嵌套数组,可以将flat()方法的参数写成一个整数,表示想要拉平的层数,默认为1
flatMap()方法对原数组的每个成员执行一个函数相当于执行Array.prototype.map(),然后对返回值组成的数组执行flat()方法。该方法返回一个新数组,不改变原数组。flatMap()方法还可以有第二个参数,用来绑定遍历函数里面的this
- 数组的空位
- 数组的空位指,数组的某一个位置没有任何值
ES6 则是明确将空位转为undefined
包括Array.from、扩展运算符、copyWithin()、fill()、entries()、keys()、values()、find()和findIndex()
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 提示词工程——AI应用必不可少的技术
· 地球OL攻略 —— 某应届生求职总结
· 字符编码:从基础到乱码解决
· SpringCloud带你走进微服务的世界