
Код 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.