首页 » 学习JavaScript数据结构与算法(第2版) » 学习JavaScript数据结构与算法(第2版)全文在线阅读

《学习JavaScript数据结构与算法(第2版)》2.5 在任意位置添加或删除元素

关灯直达底部

目前为止,我们已经学习了如何添加元素到数组的开头或结尾处,以及怎样删除数组开头和结束位置上的元素。那如何在数组中的任意位置上删除或添加元素?

我们可以使用splice方法,简单地通过指定位置/索引,就可以删除相应位置和数量的元素:

numbers.splice(5,3);  

这行代码删除了从数组索引5开始的3个元素。这就意味着numbers[5]numbers[6]numbers[7]从数组中删除了。现在数组里的值变成了-3、-2、-1、0、1、5、6、7、8、9、10、11和12(2、3、4已经被移除)。

 对于JavaScript数组和对象,我们还可以用delete操作符删除数组中的元素,例如delete numbers[0]。然而,数组位置0的值会变成undefined,也就是说,以上操作等同于numbers[0] = undefined。因此,我们应该始终使用splicepopshift(马上就会学到)方法来删除数组元素。

现在,我们想把数字2、3、4插入数组里,放到之前删除元素的位置上,可以再次使用splice方法:

numbers.splice(5,0,2,3,4);  

splice方法接收的第一个参数,表示想要删除或插入的元素的索引值。第二个参数是删除元素的个数(这个例子里,我们的目的不是删除元素,所以传入0)。第三个参数往后,就是要添加到数组里的值(元素2、3、4)。输出会发现值又变成了从-3到12。

最后,执行下这行代码:

numbers.splice(5,3,2,3,4);  

输出的值是从-3到12。原因在于,我们从索引5开始删除了3个元素,但也从索引5开始添加了元素2、3、4。