A1: my only thought is to have the elements following some logical naming system or order, so you can find it immediately using an equation of sorts. you could also try nested arrays

var nest:Object = new Object()
nest.someelementname = 6 //a number representing the index of the element name in the array
nest.someotherelementname = 3

then to reference and return it:

return array[nest.someelementname]

I don't know if this is any more efficient for your purposes, but it could work under certain circumstances I think.

A2: I don't know about that one, sorry.