-1

如果我有一个数组

private var temp:Array = [item1, item2, item3, item4, item5, item6, item7...etc];

以及数组中项目的两个变量:

private var firstPosition;

private var secondPosition;

有没有办法同时删除这两个项目?

比如说,如果 firstPosition = item4 和 secondPosition = item7...那么 firstPosition = temp[3] 和 secondPosition = temp[6]

但如果我写:

temp.splice(firstPosition, 1);

然后 secondPosition 是它们 temp[5] 而不是 temp[6] ...因为已从数组中删除了一个。

我一直在写:

temp.splice(firstPosition,1);
temp.splice(secondPosition-1,1);

我认为这是不对的……尤其是如果 secondPosition 位于“temp”数组的开头(即 temp[0])。

有没有办法一次从数组中删除两个项目,如果它们不是并排的?

4

1 回答 1

0

从具有最大索引的位置开始删除:

// it will not change firstPosition if firstPosition < secondPosition
temp.splice(secondPosition, 1); 
temp.splice(firstPosition, 1);

这不会影响索引较低的位置。

于 2010-01-13T15:53:37.730 回答