2010-01-13 3 views
-1

Si j'ai un tableauAS3: Splice deux éléments dans des endroits différents?

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

et deux variables pour les éléments du tableau:

private var firstPosition; 

private var secondPosition; 

est-il un moyen de retirer les deux éléments à la fois?

Say, si firstPosition = item4 et secondPosition = item7 ... puis firstPosition = temp [3] et secondPosition = temp [6]

Mais si j'écris:

temp.splice(firstPosition, 1); 

Puis secondPosition est-ce qu'ils sont temp [5] au lieu de temp [6] ... puisque l'un a été retiré du tableau.

Je suis en train d'écrire:

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

Je ne pense pas que ce soit le tableau droit ... surtout si secondPosition est au début de la « température » (à savoir température [0]).

Y at-il un moyen de supprimer deux éléments à la fois d'un tableau, s'ils ne sont pas côte à côte?

Répondre

0

Démarrer la suppression de la position avec un indice maximum:

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

Cela n'affectera pas les positions avec un indice plus faible.

+0

Comment trier les deux variables, firstPosition et secondPosition? Utiliser indexOf? – redconservatory

+0

Vous ne pouvez pas trier les variables. Comparez-les simplement pour vous assurer que 'firstPosition secondPosition) swap_values_of (firstPosition, secondPosition)' –

Questions connexes