Показать сообщение отдельно
Старый 21.01.2010, 12:24
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 7  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Код AS3:
var test:Array = [];
for (var i:int = 0; i < 1e5; i++)
{
	test.push(Math.floor(Math.random() * 10000));
}
 
var t:Number = getTimer();
 
var o:Object = {};
test = test.filter(callback);
o = null;
 
trace(getTimer() - t); // 21
 
function callback(item:*, index:int, array:Array):Boolean
{
	return o[item] ? false : o[item] = true;
}

Код AS3:
var test:Array = [];
for (var i:int = 0; i < 1e5; i++)
{
	test.push(Math.floor(Math.random() * 10000));
}
 
var t:Number = getTimer();
i = test.length;
var val:int;
var j:int;
var result:Array = [];
while (i--)
{
	val = test[i];
	if (result.indexOf(val) > -1) continue;
	result.push(val);
}
trace(getTimer() - t); // 5296


Код AS3:
var test:Array = [];
for (var i:int = 0; i < 1e5; i++)
{
	test.push(Math.floor(Math.random() * 10000));
}
 
var t:Number = getTimer();
test = removeDuplicates(test);
trace(getTimer() - t); // 9634
 
function removeDuplicates(inArray : Array) : Array {
	return inArray.filter(_removeDuplicatesFilter);
}
 
function _removeDuplicatesFilter(e : *, i : int, inArray : Array) : Boolean {
	return (i == 0) ? true : inArray.lastIndexOf(e, i - 1) == -1;
}



Код AS3:
var test:Array = [];
for (var i:int = 0; i < 1e5; i++)a
{
	test.push(Math.floor(Math.random() * 10000));
}
 
var t:Number = getTimer();
for (i = 0; i < test.length; i++) {
	for (var j:int = 0; j < test.length; j++) {
		if (i!= j && test[i] == test[j]) {
			test.splice(j, 1);
			i--;
		}
 
	}
}
trace(getTimer() - t); 
// Error: Error #1502: A script has executed for longer than the default timeout period of 15 seconds.