JavaScript中给数组中添加元素有三种方法。
1、unshift方法 – 添加元素到数组的头部
const arr = [1, 2] arr.unshift(0) console.log(arr) // [0, 1, 2]
2、push方法 – 添加元素到数组的尾部
const arr = [1, 2] arr.push(3) console.log(arr) // [1, 2, 3]
3、splice方法 – 添加元素到数组的任意位置
const arr = [1, 2] arr.splice(1, 0, 3) console.log(arr) // [1, 3, 2]
arr.splice(1, 0, 3)
这个代码可能有些难以理解,很多人对splice方法传入两个以上的参数这种用法比较陌生。
我们熟悉的是splice用于删除的操作:
const arr = [1, 2, 3] arr.splice(1, 1) console.log(arr) // [1, 3]
第一个入参1
是起始的索引值,第二个入参表示从起始索引开始需要删除的元素个数。arr.splice(1, 1)
这个代码,我们指明从索引为1的元素(也就是2)开始,删掉1个元素,也就是把arr[1]
给删了,所以arr
变成了[1, 3]
。
传入两个以上参数
这种用法,是用于在删除的同时完成数组元素的新增。从第三个位置开始的入参,表示要添加到数组中的元素。
在arr.splice(1, 0, 3)
这个例子中,我们指明了从arr[1]
开始,删掉0个元素(也就是不删),并在索引为1的位置新增值为3的元素。
const arr = [1, 2] arr.splice(1, 0, 3) console.log(arr) // [1, 3, 2]
因为起始索引是1
,且删掉的元素0个,所以2并不会被删掉,而是保留了下来。
从索引1处新增一个元素3
,那么这个3
就会把原来的arr[1]
这个地方的元素2
挤到后面去。
这个方法还是挺强大的,利用它,我们可以做到在数组的任意位置进行元素的新增。