js中操作数组应该是最寻常不过的家常便饭了。原生的js构造函数的原型上也提供了很多的方法,方便我们对数组进行操作。今天来看看对数组的『增删改』方法。
首先看看向数组中添加一个元素。我们可以使用push,unshift,这两个方法分别数组的尾部和头部放入插入一个变量。代码:
var a = [1,2,3];
a.push(4);
a.unshift(0);
console.log(a);//[0, 1, 2, 3, 4]
这两个方法插入变量的位置比较固定,使用比较受限制。我们通常需要向数组的任意位置放置变量,这时就用到了splice方法。
var a = [1,2,3];
a.splice(4,0,4);//向数组下标为4的位置添加一个4
a.splice(0,0,0)//向数组下标为0的位置添加一个0
a.splice(3,0,5,6)//向数组下标为3的位置添加一个5
console.log(a);//[0, 1, 2, 5, 6,3, 4]
在代码中,splice方法的第一个参数为需要插入变量的数组的下标,而第三个参数是我们向数组中插入的变量
看到上面的实例中向splice传入的参数个数,我们发现第二个参数好像没有使用。其实这个参数和数组的删除是相关的。
我们可以使用pop,shift,这两个方法从数组的尾部和头部删除一个变量。代码:
var a = [1,2,3];
a.pop();
a.shift();
console.log(a);//[2]
上面的操作我们也可以通过splice方法来实现
var a = [1,2,3];
a.splice(0,1);
console.log(a);//[2, 3]
a.splice(1,1);
console.log(a);//[2]
从对数组的插入变量和删除变量我们可以看到splice的使用的方法非常灵活,传入的函数参数也包含3个部分。第一部分是splice的第一个参数代表数组的下标,第二个部分是splice的第二个参数是可选参数代表删除的元素个数,输出变量的开始的位置就是从第一个参数的值开始。第三部分是之后的参数也是可选参数是插入的变量,插入变量的位置也是第一个参数的下标位置开始。
说到这个可能我们也意识到splice可以实现对数组的修改。
var a = [1,2,3];
a.splice(1,1,5,6);
console.log(a);//[1, 5, 6, 3]
虽然我们使用splice可以完全实现对数组的增删改操作。但是我们在向数组的末尾插入、删除变量时,需要获取数组的长度length之后才可以进行操作;而且在向头部和尾部插入、删除变量时需要传入的参数个数比较多,所以splice的执行效率和代码的简洁程度不及push、unshift、pop、shift。