ES6-数组扩展

数组扩展

1. 扩展运算符 ...

...扩展运算符如同参数一般,将一个数组转化为用逗号隔开的参数序列,主要作用于函数,将数组变为参数序列

console.log(...[1,2,3])   // 1 2 3  

2.代替数组的apply方法

Math.max.apply(null,arr);  //ES5

Math.max(...arr);  //ES6

push函数的...数组参数调用

3.扩展运算符的应用

3.1 合并数组

//ES5 要用contact函数
//ES6 [1,2,...more];

arr1.conact(arr2,arr3);   //ES5
[...arr1,...arr2,...arr3];  //ES6

3.2 与解构赋值结合

let [a,...arr] = [1,2,3,4,5,6,7,8,9];  //与解构辅助应用的时候,数组需要放在最后一位

3.3 函数返回值如果想要返回一个多个值的话也可以用这个

3.4 字符串

字符串通过扩展运算符也可以转化为数组,并且可以识别Unicode
[...str]

[...'hellow'] // 输出的字符串数组

3.5 实现iteratro接口

3.6Map与Set解构

4.Array.from()可以及那个各种值转化为真正的数组,并且提供map功能

将类对象 , 也就是伪类数组转化为真正的数组;类似数组对象 ,可遍历的对象

在我们进行DOM操作的时候,得到的是一个伪类数组,这时候我们要想进行遍历的话,需要先转化为数组,然后在用forEach方法尽行遍历

在转化的时候,类数组对象需要有length值

第二个参数,类似于map,对每个值进行处理

5.Array.of()

将一组值转化为数组,可以替代Array()或者new Array()

6.数组的深浅拷贝

arr.copyWithin(target[, start[, end]])

参数

  • target

    0 为基底的索引,复制序列到该位置。如果是负数,target 将从末尾开始计算。

    如果 target 大于等于 arr.length,将会不发生拷贝。如果 targetstart 之后,复制的序列将被修改以符合 arr.length

  • start

    0 为基底的索引,开始复制元素的起始位置。如果是负数,start 将从末尾开始计算。

    如果 start 被忽略,copyWithin 将会从0开始复制。

  • end

    0 为基底的索引,开始复制元素的结束位置。copyWithin 将会拷贝到该位置,但不包括 end 这个位置的元素。如果是负数, end 将从末尾开始计算。

    如果 end 被忽略,copyWithin 方法将会一直复制至数组结尾(默认为 arr.length)。

返回值为一个新的数组

 

注意:有深浅拷贝的问题,

 

7.find() 和finddex()

寻找符合成员

一个返回成员,一个返回成员位置

8.fill()

填充数组Array.fill('7'); [7,7,7];

9.entries(),keys(),values()

键值对遍历

键值名遍历

键值遍历

10.includes()

返回一个布尔值

Array.includes(value,local);

一个目标值,一个位置

 

11.数组空位可以用map循环,forEach() 自动掠过空位

 

 

 

总结:

1.作为参数

2.扩展运算符合并数组

3.字符串转化为数组

4.伪数组from方法转化为数组

5.深浅拷贝

6.空格问题

posted @ 2021-11-20 12:37  拉缇娜  阅读(71)  评论(0)    收藏  举报