1.数组的定义 伪数组的转换
- const arr = new Array(1,2,3,4)
- const arr = [11,2,3,4]
- const arr1 = new Array(3)标识创建一个长度为3的数组,数组内的元素未赋值的话都会是undefined(new Array存在一个小小的缺陷)
因此有一种新的创建数组的方式
- const arr = Array.of(3)
- const arr = Array.from()
Array.from()
方法从一个类似数组或可迭代对象创建一个新的,浅拷贝的数组实例。
Array.from(
想要转换成数组的伪数组对象或可迭代对象,如果指定了该参数,新数组中的每个元素会执行该回调函数,可选参数,执行回调函数mapFn
时this
对象)有3个参数,后两个参数为可选的,
Array.from(obj, mapFn, thisArg)
就相当于Array.from(obj).map(mapFn, thisArg)
2.数组的检验
Array.isArray()
3.数组转换为字符串 (有时候给后台传参数的时候,需要将一个数组转换为字符串)
- .toString()
- String()
- join()
4.字符串转换为数组
- .split()
- Array.from(),使用这个方法能转换成数组是因为,字符串本身有length这个属性
- 展开语法
5.追加数据
- push()
![]()
- 展开语法
以上两种都是从后边追加数据
- unshift()是从前边追加数据
push,unshift都返回追加数据后的新数组的长度length
- 可以从中间追加元素 .fill()
6.数组的截取
- pop() 从数组的末尾开始移除数据
- shift() 丛数组的最前边移除数据
![]()
- slice() 从中间截取,截取会返回新的数组,原数组不发生改变。参数传1个,标识从索引下表开始到数组结束的长度
传2个参数,表示起始位置.(规则为:含头不含尾)
- 全能方法:splice()
当传入1个参数时:为截取,从传入的下标开始截取数据,返回值为,被截取掉的数据
当传入2个参数是,为截取的起始位置,这个一般用于删除数组中的某些元素,很是方便
当传入3个参数时。
(1)第二个参数不为0时,可以理解我数据替换,从截取的起始位置开始替换数据,替换数据为第三个参数
![]()
![]()
(2)第二个参数为0时,表示添加数据。从第一个参数索引下标对应的位置开始添加数据
举例:数组中数据的移动
function move(array,from,to){
let newArray = [...array]
let item = newArray.splice(from,1)
newArray.splice(to,0,...item)
return newArray}
move([1,2,3,4],2,3) // [1, 2, 4, 3]
7.数组的循环:for循环、for---in、for---of
番外:for for---in for---of区别
![]()
![]()
for---in循环的是索引 for---of循环的是元素
- 迭代器
8.数组的查找 相关文档很多,就不做详细解释了 https://es6.ruanyifeng.com/#docs/array
- indexOf()
- lastIndexOf()
- includes()
- find()
- findIndex()
- every()
- some()
- filter()
- map()
- reduce()
9.数组排序
- sort()