Показать сообщение отдельно
Старый 14.01.2010, 20:24
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 3  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
я бы добавил колбек в sort() первого массива и в нем бы сортировал второй... ну, скажем для коротких массивов это может быть не актуально, но для длинных - это ж нужно будет добавить целый массив фейк объектов которые нужны только для сортировки...

Код AS3:
//              1,    2,   2,   3,   12
var a1:Array = [12,   3,   1,   2,   2];
//              c,    e,   a,   d,   b
var a2:Array = ["a", "b", "c", "d", "e"];
 
function numSort(a:int, b:int):int
{
	var index:int;
	var s:String;
	if (a > b)
	{
		index = a1.indexOf(a);
		s = a2.splice(index, 1)[0];
		a2.push(s);
		return 1;
	}
	else if (a < b)
	{
		return -1;
	}
	return 0;
}
a1.sort(numSort);
trace(a2, a1);
Вроде так, не?

EDIT:
Ой не... так не получится... сейчас посмотрел, там пары в каком-то странном порядке передаются и массив сам во время сортировки не меняется... вобщем, сорри, тогда только совй сот писать
__________________
Hell is the possibility of sanity


Последний раз редактировалось wvxvw; 14.01.2010 в 21:10.