
Код:
//1
var _arr:Array = [1,2,3,4,5];
_arr.splice(0,_arr.length)
trace(_arr);
//2
Array.prototype.sort = function(f:Function){
var c_index:Number = 0;
while(c_index<this.length-1){
switch(f(this[c_index],this[c_index+1])){
case -1:
case 0:
c_index++;
break;
case 1:
var el:Object = this[c_index];
this.splice(c_index,1);
this.splice(c_index+1,0,el);
if(!c_index){
c_index++;
} else {
c_index--;
}
break;
case 2:
this.splice(c_index+1,1);
break;
case 3:
default :
this.splice(c_index,1);
break;
}
if(this.length==1 && f(this[0])>2){
this.pop();
}
}
}
var _arr:Array = ['qqq',5,4,3,'1+2',2,1,6,3,'foo',{a:'50'}];
var a_arr:Array = ['sss','12a3','ddd'];
a_arr.sort(crazySort);
trace(a_arr);
function crazySort(a,b):Number {
if(a-b>0){
return 1;
} else if(a-b==0){
return 0;
} else if(a-b<0){
return -1;
} else if(isNaN(a/1)){
return 3;
} else {
return 2;
}
}
_arr.sort(crazySort);
trace(_arr);
Ну, первый способ просто смешной, а второй может иметь практическую ценность, ну, и как часный случай своей работы, например, если весь массив будет состоять только из не-чисел, то удалит весь массив =)