删除数组元素

作者:chilleen 来源:ITPOW 日期:2006-1-10

曾经看到一篇文章,说删除数组中某一元素的步骤应该这样:

  1. delete

  2. 元素前移

  3. 重设数组length

其实使用数组方法 splice 可以一步完成。

arrayObject.splice(start, deleteCount, [item1[, item2[, . . . [,itemN]]]])

start 要删除的开始位置。

deleteCount 要删除的个数。

item1, item2, . . ., itemN 如果指定此值,可以在删除的位置插入元素。如果插入的是数组,则只取第一个元素。

start

正数越界:不出错,什么也不会删除,不论 deleteCount 是何值。

负数:不出错。

  • -1 表示从最后一个元素开始删。

  • -2 表示从倒数第二个元素开始删。

  • ……

  • 负的数组长度,表示从第一个元素开始删,相当于是 0。

  • 小于负的数组长度,等效于负的数组长度

deleteCount

省略:从 start 对应位置开始,往右全部删除。

负数:不出错、不删除。

deleteCount 本身越界:不出错、不删除。

deleteCount 指向的元素有越界、有没越界的:不出错、删除未越界元素。

deleteCount 数的方向

不论 start 是正是负、deleteCount 是正是负,我们确定要删除的元素时,都是从左往右数 deleteCount 个

相关文章