Показать сообщение отдельно
Старый 05.04.2011, 17:21
kseniya вне форума Посмотреть профиль Отправить личное сообщение для kseniya Найти все сообщения от kseniya
  № 9  
Ответить с цитированием
kseniya
 
Аватар для kseniya

Регистрация: Oct 2010
Адрес: Новосиб
Сообщений: 122
есть же стандартный метод filter, он мне кажется более правильный
Код AS3:
var arr:Array = new Array();
arr.push({name:"one", manager:false});
arr.push({name:"tru", manager:true});
arr.push({name:"fri", manager:false});
arr.push({name:"one", manager:true});
arr.push({name:"tru", manager:true});
arr.push({name:"fri", manager:true});
trace("Employees:");
arr.forEach(traceEmployee);
/*
Employees:
	one
	tru (manager)
	fri
	one (manager)
	tru (manager)
	fri (manager)
*/
var arr2:Array = arr.filter(isManager);
trace("Managers:");
arr2.forEach(traceEmployee);
/*
Managers:
	one
	fri
	one (manager)
	tru (manager)
	fri (manager)
*/
function isManager(element:*, index:int, arr:Array):Boolean {
	for (var i:uint = index+1; i<arr.length; i++){
		if(arr[i]["name"] == element["name"] && arr[i]["manager"] == element["manager"]){
			return false;
		}
	}
	return true;
}
function traceEmployee(element:*, index:int, arr:Array):void {
	trace("\t" + element.name + ((element.manager) ? " (manager)" : ""));
}