# Replace the use of eval()?

**URL:** <https://forum.kirupa.com/t/replace-the-use-of-eval/194398>\
**Category:** Uncategorized\
**Created:** [July 22, 2006, 10:26pm UTC](https://forum.kirupa.com/t/replace-the-use-of-eval/194398 "2006-07-22T22:26:29Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![keitai](https://avatars.discourse-cdn.com/v4/letter/k/73ab20/32.png) [@keitai](https://forum.kirupa.com/u/keitai)\
**Post date:** [July 22, 2006, 10:26pm UTC](https://forum.kirupa.com/t/replace-the-use-of-eval/194398/1 "2006-07-22T22:26:29Z")

</div>

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

```auto

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[]

```auto

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
