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

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Код:
//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);
Ну, первый способ просто смешной, а второй может иметь практическую ценность, ну, и как часный случай своей работы, например, если весь массив будет состоять только из не-чисел, то удалит весь массив =)
__________________
Hell is the possibility of sanity


Последний раз редактировалось wvxvw; 05.01.2008 в 00:36.