Я не уверен, что именно вы хотите достичь, но мне кажется, что проще всего сделать так, чтобы объект, который вы назначаете для поля "val" в каждой из ArrayCollections, содержал обе переменные, т.е.
older.addItem({ key:'item1', val:{ name:'desc1' ,another:'another1'} });
и получить эти значения позже:
private function getArrayElementIndex(arr:ArrayCollection, elementValue:Object):int{
for (var retInd: int = 0; retInd < arr.length; retInd++) {
if (arr[retInd]['key'] == elementValue['key'] && arr[retInd]['val']['name'] == elementValue['val']['name']
&& arr[retInd]['val']['another'] == elementValue['val']['another']) {
return retInd;
}
}
return -1;