Показать сообщение отдельно
Старый 07.03.2015, 14:04
mayakwd вне форума Посмотреть профиль Отправить личное сообщение для mayakwd Посетить домашнюю страницу mayakwd Найти все сообщения от mayakwd
  № 4  
Ответить с цитированием
mayakwd
 
Аватар для mayakwd

Регистрация: Jul 2008
Адрес: t:2, x: 0.76
Сообщений: 553
Отправить сообщение для mayakwd с помощью ICQ Отправить сообщение для mayakwd с помощью Skype™
Код AS3:
package {
	import flash.display.Sprite;
 
	/**
	 * @author Ilya Malanin (flashdeveloper[at]pastila.org)
	 */
	public class LinkedArraysSort extends Sprite {
		public function LinkedArraysSort() {
			var keys : Array = [1, 2, 8, 7, 3];
			var values : Array = ['g', 'f', 'n', 't', 'k'];
 
			testLinkedSort1(keys.concat(), values.concat());
			testLinkedSort2(keys.concat(), values.concat());
		}
 
		private function testLinkedSort1(keys : Array, values : Array) : void {
			var sortedIndexes : Array = keys.sort(Array.NUMERIC | Array.RETURNINDEXEDARRAY);
			remapValues(keys, sortedIndexes);
			remapValues(values, sortedIndexes);
 
			trace("Test 1\n---------------");
 
			trace("keys: " + keys);
			trace("values: " + values+'\n');
		}
 
		private function remapValues(values : Array, newIndexes : Array) : void {
			var result : Array = [];
 
			const length : int = newIndexes.length;
			for (var i : int = 0; i < length; i++) {
				result[i] = values[newIndexes[i]];
			}
 
			values.length = 0;
			values.splice(0, 0, result);
		}
 
		private function testLinkedSort2(keys : Array, values : Array) : void {
			trace("Test 2\n---------------");
 
			var merged : Array = [];
 
			const length : int = keys.length;
			for (var i : int = 0; i < length; i++) {
				merged.push({key: keys[i], value: values[i]});
			}
 
			merged.sortOn('key', Array.NUMERIC);
 
			for (i = 0; i < length; i++) {
				keys[i] = merged[i]['key'];
				values[i] = merged[i]['value'];
			}
 
			trace('keys: ' + keys);
			trace('values: ' + values);
		}
	}
}
__________________
Блог, Twitter
Брюзга.