Object.keys(obj.arr));
メソッドを使用してオブジェクト内の配列にアクセスしようとしています。以下のように配列に直接アクセスすると、適切な出力が得られます。
alert(Object.keys(obj.arr));
しかし、パラメーターを使用して配列名を渡すと、エラーが発生します:
var selected = "arr";
alert(Object.keys(obj.arr));
error : Uncaught TypeError: Object.keys called on non-object
例があります:DEMO