I ended up using the window object to reference the data-attributes that way, rather than eval. I think the way we handle our event binding was making the other solutions error out.
<a href="#" data-foo="BAR">x</a>
// set key to the BAR[] array
var key = window[ $this.data( 'foo' ) ];
// push value into BAR[]
key.push( $this.data( 'values' ) );
// push the BAR['values'] array into the myObject object
myObject[$this.data( 'foo' )] = key;
OUTPUT:
myObject = { BAR = ['values', 'values'], BAR_2 = ['values', 'values'] }