介绍
本次介绍数组的一些扩展方法,都是简单地总结下一些方法的使用,详细的请参考:数组的扩展
数组
扩展运算符
扩展运算符(spread)是三个点(…),将一个数组转为用逗号分隔的参数序列
1 | console.log(...[1, 2, 3]) |
有了扩展运算符,对于许多操作能更方便了1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37//复制数组
const a1 = [1, 2];
const a2 = [...a1];
// 或
const [...a2] = a1;
//合并数组
var arr1 = ['a', 'b'];
var arr2 = ['c'];
var arr3 = ['d', 'e'];
var arr4 = [...arr1,...arr2,...arr3]
// [ 'a', 'b', 'c', 'd', 'e' ]
//还记得解构赋值吧,你也可以结合扩展运算符一起用
const [first, ...rest] = [1, 2, 3, 4, 5];
first // 1
rest // [2, 3, 4, 5]
//注意:如果将扩展运算符用于数组赋值,只能放在参数的最后一位,否则会报错
const [...rest,first] = [1, 2, 3, 4, 5]; //报错
//扩展运算符还可以将字符串转为真正的数组
[...'hello']
// [ "h", "e", "l", "l", "o" ]
//还有一个很棒的功能
let oLi = document.querySelectorAll('li');
let array = [...oLi];
//看明白了吗,可以将类数组转为真正的数组
//当然只有部署了 Iterator 接口的对象才可以才能用扩展运算符转为真正的数组
Array.from()
Array.from方法用于将两类对象转为真正的数组,分别是类似数组的对象和可遍历的对象
用于类似数组的对象
1 | let obj = { |
用于可遍历的对象
1 | let oLi = document.querySelectorAll('li'); |
Array.of()
Array.of方法用于将一组值,转换为数组1
2
3
4
5
6
7
8
9Array.of(3, 11, 8) // [3,11,8]
Array.of(3) // [3]
Array.of(3).length // 1
//注意它与new Array()的区别
let arr1 = new Array(); //[]
let arr2 = new Array(2); //[ , ,]
let arr3 = new Array(1,2,3); //[1,2,3]
fill()
fill方法使用给定值,填充一个数组。1
2
3
4
5
6
7
8
9['a', 'b', 'c'].fill(7)
// [7, 7, 7] 数组中已有的元素,会被全部抹去
new Array(3).fill(7)
// [7, 7, 7]
//fill方法还可以接受第二个和第三个参数,用于指定填充的起始位置和结束位置
['a', 'b', 'c'].fill(7, 1, 2)
// ['a', 7, 'c']
includes()
includes方法返回一个布尔值,表示某个数组是否包含给定的值1
2
3[1, 2, 3].includes(2) // true
[1, 2, 3].includes(4) // false
[1, 2, NaN].includes(NaN) // true