Parse lets you define a pointer column or an array column. Arrays are an ordered collection of scalar types (numbers, strings, etc) or they can be an array of pointers.
Pointers
When getting and setting a pointer, the operand is a PFObject. In other words, for the setter:
myObject.set("somePointerCol", someOtherObject);
where someOtherObject is a PFObject, possibly an empty one, with only an ID defined (as you indicated correctly in your edit). For the getter:
myQuery.first().then(function(myObject) {
var someOtherObject = myObject.get("somePointerCol");
});
someOtherObject will be an empty PFObject with just its objectId set. If you want the referred-to object fetched as well, then qualify your query like this:
myQuery.include("somePointerCol");
// someOtherPointerCol on the retrieved object will contain a complete, fetched object
Arrays and Arrays of Pointers
PFObject provides a couple methods for arrays, you can add to an array with add and addUnique, and remove from it with remove. The elegant part is that these methods can be just as readily applied when the array is an array of pointers.
myObject.addUnique("arrayOfPointersCol", someOtherObject);
// or...
myObject.remove("arrayOfPointersCol", someOtherObject);
Finally, PFQuery deals with arrays fairly transparently. To find any myObject who's arrayOfPointersCol contains a PFObject, use equalTo, as if its just a single value.
myQuery.equalTo("arrayOfPointersCol", someOtherObject);
// if you have only an id, say someId, then
var SomeOtherClass = Parse.Object.extend("SomeOtherClass");
var someOtherObject = new SomeOtherClass();
someOtherObject.id = someId;
myQuery.equalTo("arrayOfPointersCol", someOtherObject);
Similarly to non-array pointers, you can eagerly fetch all of the elements in that array:
myQuery.include("arrayOfPointersCol"); // but be careful, keep array lengths short
Underscore
Last, and unrelated to the array or pointer ideas, you certainly can map an array of object ids, transforming them into an array of pointer objects. The code you posted looks fine, but it depends on the underscore library -- which is a very useful library that provides the _.map function among many others.