Replace the use of eval()?

I have this working AS, but I want to replace the use of eval()



function getNeighbors(i,j,map){
	//create an array which holds our neighbors
	var neighborsArray:Array = new Array();
	var i:Number;
	var j:Number;
	var map:Array;
	var mapHeight:Number = map.length;
	var mapWidth:Number = map[0].length;
	var north:Number = i - 1;
	var east:Number= j+1;
	var south:Number = i + 1;
	var west:Number = j-1;
	
	var neighbour1:String = (north>=0)? "t_"+(i-1)+"_"+j : "";
	var neighbour2:String = (east<mapWidth) ? "t_"+i+"_"+(j+1) : "";
	var neighbour3:String = (south<mapHeight)?"t_"+(i+1)+"_"+j:"";
	var neighbour4:String = (west>=0)?"t_"+i+"_"+(j-1):"";

	trace("North: "+neighbour1);
	trace("East: "+neighbour2);
	trace("South: "+neighbour3);
	trace("West: "+neighbour4);
	trace("----------------");
	//push to neighborsArray
	
	for (k=1;k<=4;++k) {
		
		if (eval("neighbour"+k).length > 0){
			trace(eval("neighbour"+k));
			//var mcName:String= this["neighbour"+k];
			var mcName:String = eval("neighbour"+k);
			neighborsArray.push(mcName);
			
		}
	}
	trace("Array "+neighborsArray);
	//return array??
}

This is the code block where I use eval. I already tried this[]


for (k=1;k<=4;++k) {
		
		if (eval("neighbour"+k).length > 0){
			trace(eval("neighbour"+k));
			//var mcName:String= this["neighbour"+k];
			var mcName:String = eval("neighbour"+k);
			neighborsArray.push(mcName);
			
		}
	}

Any ideas