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

《学习JavaScript数据结构与算法(第2版)》2.4 删除元素

关灯直达底部

目前为止,我们已经学习了如何给数组的开始和结尾位置添加元素。下面我们来看一下怎样从数组中删除元素。

要删除数组里最靠后的元素,可以用pop方法:

numbers.pop;  

 通过pushpop方法,就能用数组来模拟栈,你将会在下一章看到这部分内容。

现在,数组输出的数字是-4到12,并且数组的长度是17。

从数组首位删除元素

如果要移除数组里的第一个元素,可以用下面的代码:

for (var i = 0; i < numbers.length; i++){  numbers[i] = numbers[i+1];}  

下面这张图呈现了这段代码的执行过程:

我们把数组里所有的元素都左移了一位。但数组的长度依然是17,这意味着数组中有额外的一个元素(值是undefined)。在最后一次循环里,i + 1引用了一个数组里还未初始化的位置。在Java、C/C+或C#等一些语言里,这样写可能就会抛出异常了,因此不得不在 numbers.length - 1处停止循环。

可以看到,我们只是把数组第一位的值用第二位覆盖了,并没有删除元素(因为数组的长度和之前还是一样的,并且了多一个未定义元素)。

使用shift方法

要确实删除数组的第一个元素,可以用shift方法实现:

numbers.shift;  

那么,假如本来数组中的值是从-4到12,长度为17,执行了上述代码后,数组就只有-3到12了,并且长度也会减小到16。

 通过shiftunshift方法,就能用数组模拟基本的队列数据结构,第4章里会讲到。