前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数组的扩展

数组的扩展

原创
作者头像
李才哥
修改2021-02-23 14:31:57
5080
修改2021-02-23 14:31:57
举报
文章被收录于专栏:李才哥李才哥

数组的扩展

扩展运算符

扩展运算符(spread)是三个点(...)。它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列

由于扩展运算符可以展开数组,所以不再需要apply方法,将数组转为函数的参数了

数组是复合的数据类型,直接复制的话,只是复制了指向底层数据结构的指针,而不是克隆一个全新的数组

扩展运算符提供了数组合并的新写法。

扩展运算符可以与解构赋值结合起来,用于生成数组

扩展运算符还可以将字符串转为真正的数组。

任何 Iterator 接口的对象(参阅 Iterator 一章),都可以用扩展运算符转为真正的数组

Map 和 Set 结构,Generator 函数

Array.from()

Array.from方法用于将两类对象转为真正的数组:类似数组的对象(array-like object)和可遍历(iterable)的对象(包括 ES6 新增的数据结构 Set 和 Map

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

Array.of()

Array.of方法用于将一组值,转换为数组

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

Array.of基本上可以用来替代Array()或new Array(),并且不存在由于参数不同而导致的重载

数组实例的 copyWithin()

数组实例的copyWithin方法,在当前数组内部,将指定位置的成员复制到其他位置(会覆盖原有成员),然后返回当前数组

数组实例的 find() 和 findIndex()

数组实例的find方法,用于找出第一个符合条件的数组成员

它的参数是一个回调函数,所有数组成员依次执行该回调函数,直到找出第一个返回值为true的成员,然后返回该成员

如果没有符合条件的成员,则返回undefined

数组实例的findIndex方法的用法与find方法非常类似,返回第一个符合条件的数组成员的位置,如果所有成员都不符合条件,则返回-1

这两个方法都可以接受第二个参数,用来绑定回调函数的this对象

数组实例的 fill()

fill方法使用给定值,填充一个数组。

如果填充的类型为对象,那么被赋值的是同一个内存地址的对象,而不是深拷贝对象

数组实例的 entries(),keys() 和 values()

ES6 提供三个新的方法——entries(),keys()和values()——用于遍历数组

它们都返回一个遍历器对象,可以用for...of循环进行遍历

如果不使用for...of循环,可以手动调用遍历器对象的next方法,进行遍历

数组实例的 includes()

Array.prototype.includes方法返回一个布尔值,表示某个数组是否包含给定的值,与字符串的includes方法类似

Map 和 Set 数据结构有一个has方法,需要注意与includes区分

数组的空位

数组的空位指,数组的某一个位置没有任何值

Array.from方法会将数组的空位,转为undefined,也就是说,这个方法不会忽略空位

扩展运算符(...)也会将空位转为undefined

copyWithin()会连空位一起拷贝

fill()会将空位视为正常的数组位置

for...of循环也会遍历空位

entries()、keys()、values()、find()和findIndex()会将空位处理成undefined

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 扩展运算符
    • 扩展运算符(spread)是三个点(...)。它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列
      • 由于扩展运算符可以展开数组,所以不再需要apply方法,将数组转为函数的参数了
        • 数组是复合的数据类型,直接复制的话,只是复制了指向底层数据结构的指针,而不是克隆一个全新的数组
          • 扩展运算符提供了数组合并的新写法。
            • 扩展运算符可以与解构赋值结合起来,用于生成数组
              • 扩展运算符还可以将字符串转为真正的数组。
                • 任何 Iterator 接口的对象(参阅 Iterator 一章),都可以用扩展运算符转为真正的数组
                  • Map 和 Set 结构,Generator 函数
                  • Array.from()
                    • Array.from方法用于将两类对象转为真正的数组:类似数组的对象(array-like object)和可遍历(iterable)的对象(包括 ES6 新增的数据结构 Set 和 Map
                      • Array.from还可以接受第二个参数,作用类似于数组的map方法,用来对每个元素进行处理,将处理后的值放入返回的数组
                      • Array.of()
                        • Array.of方法用于将一组值,转换为数组
                          • 这个方法的主要目的,是弥补数组构造函数Array()的不足。因为参数个数的不同,会导致Array()的行为有差异
                            • Array.of基本上可以用来替代Array()或new Array(),并且不存在由于参数不同而导致的重载
                            • 数组实例的 copyWithin()
                              • 数组实例的copyWithin方法,在当前数组内部,将指定位置的成员复制到其他位置(会覆盖原有成员),然后返回当前数组
                              • 数组实例的 find() 和 findIndex()
                                • 数组实例的find方法,用于找出第一个符合条件的数组成员
                                  • 它的参数是一个回调函数,所有数组成员依次执行该回调函数,直到找出第一个返回值为true的成员,然后返回该成员
                                    • 如果没有符合条件的成员,则返回undefined
                                      • 数组实例的findIndex方法的用法与find方法非常类似,返回第一个符合条件的数组成员的位置,如果所有成员都不符合条件,则返回-1
                                        • 这两个方法都可以接受第二个参数,用来绑定回调函数的this对象
                                        • 数组实例的 fill()
                                          • fill方法使用给定值,填充一个数组。
                                            • 如果填充的类型为对象,那么被赋值的是同一个内存地址的对象,而不是深拷贝对象
                                            • 数组实例的 entries(),keys() 和 values()
                                              • ES6 提供三个新的方法——entries(),keys()和values()——用于遍历数组
                                                • 它们都返回一个遍历器对象,可以用for...of循环进行遍历
                                                  • 如果不使用for...of循环,可以手动调用遍历器对象的next方法,进行遍历
                                                  • 数组实例的 includes()
                                                    • Array.prototype.includes方法返回一个布尔值,表示某个数组是否包含给定的值,与字符串的includes方法类似
                                                      • Map 和 Set 数据结构有一个has方法,需要注意与includes区分
                                                      • 数组的空位
                                                        • 数组的空位指,数组的某一个位置没有任何值
                                                          • Array.from方法会将数组的空位,转为undefined,也就是说,这个方法不会忽略空位
                                                            • 扩展运算符(...)也会将空位转为undefined
                                                              • copyWithin()会连空位一起拷贝
                                                                • fill()会将空位视为正常的数组位置
                                                                  • for...of循环也会遍历空位
                                                                    • entries()、keys()、values()、find()和findIndex()会将空位处理成undefined
                                                                    领券
                                                                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档