1.数组的解构赋值
1.1 什么是数组的解构赋值
解构赋值是ES6中新增的一种赋值的方式
1.2 数组解构赋值的注意点
1.2.1 在数组的解构赋值中, 等号左边的格式必须和等号右边的格式一模一样, 才能完全解构
let [a, b, c] = [1, 3, 5]
// a = 1, b = 3, c = 5
1.2.2 在数组的解构赋值中, 左边的个数可以和右边的个数不一样
let [a, b] = [1, 3, 5]
// a = 1, b = 3
let [a, b] = [1]
// a = 1, b = undefined
1.2.3 左边可以指定默认值
- 当左边指定默认值,左边的个数多余右边,左边的内容为默认值
let [a, b = 22] = [1]
// a = 1, b = 22
- 当左边指定默认值,左边的个数少余右边,左边的默认值会被覆盖
let [a, b = 22] = [1, 33]
// a = 1, b = 33
1.2.4 在数组的解构赋值中, 还可以使用ES6中新增的扩展运算符来打包剩余的数据
let [a, ...b] = [1,22,33]
// a = 1, b = [22, 33]
在数组的解构赋值中, 如果使用了扩展运算符, 那么扩展运算符只能写在最后
ES6中新增的扩展运算符: ...
1.3 扩展运算符
1.3.1 扩展运算符在等号左边, 将剩余的数据打包到一个新的数组中
注意点: 只能写在最后
let [a, ...b] = [1, 3, 5];
// a = 1; b = [3, 5];
1.3.2 扩展运算符在等号右边, 将数组中的数据解开
let arr1 = [1, 3, 5];
let arr2 = [2, 4, 6];
let arr = [...arr1, ...arr2];
// let arr = [1, 3, 5, 2, 4, 6];
1.3.3 扩展运算符在函数的形参列表中的作用
将传递给函数的所有实参打包到一个数组中
注意点: 和在等号左边一样, 也只能写在形参列表的最后
function getSum(a,...values) {
console.log('values', values); // [20, 30, 40]
}
getSum(10, 20, 30, 40);
1.3.4 扩展运算符在函数的实参列表中的作用
function getSum(a, b, c, d) {
console.log('abcd', a, b, c, d); // 50, 60, 70, 80
}
let arr = [60, 70]
getSum(50,...arr, 80)
2.数组的增删改查
增
- push
- unshift
- splice
删
- pop
- shift
- splice
改
- arr[需要修改的内容的索引] = 修改后的内容
- splice
查
- arr[需要查找的索引]
3.数组的常用方法
清空数组
arr = [];
arr.length = 0;
arr.splice(0, arr.length)
数组转换为字符串
- toString
let str = arr.toString();
数组转换成指定格式字符串
- join
join方法默认情况下如果没有传递参数, 就是调用toString();
join方法如果传递了参数, 就会将传递的参数作为元素和元素的连接符号
let arr = [1, 2, 3, 4, 5]
let str = arr.join("+"); // 1+2+3+4+5
两个数组拼接为一个数组
- concat
- 扩展运算符
let arr1 = [1, 3, 5];
let arr2 = [2, 4, 6];
let res = arr1.concat(arr2);
let arr1 = [1, 3, 5];
let arr2 = [2, 4, 6];
let res = [...arr1, ...arr2]
数组中的内容进行反转
- reverse
会修改原有的数组
let res = arr.reverse();
截取数组中指定范围内容
- slice
slice方法是包头不包尾(包含起始位置, 不包含结束的位置)
let arr = [1, 2, 3, 4, 5]
let res = arr.slice(1, 3) // res = [2, 3]
查找元素在数组中的位置
- indexOf(参数1[, 参数2])
- lastIndexOf方法默认是从右至左的查找, 一旦找到就会立即停止查找
参数1: 需要查找的元素
参数2: 从什么位置开始查找(可选)
indexOf方法如果找到了指定的元素, 就会返回元素对应的位置
indexOf方法如果没有找到指定的元素, 就会返回-1
注意点: indexOf方法默认是从左至右的查找, 一旦找到就会立即停止查找
数组中是否包含某个元素
- includes
- 通过indexOf和lastIndexOf的结果, 判断是否是-1
let arr = [1, 2, 3, 4, 5];
let res = arr.includes(4);