どうしてもArrayのオブジェクトが持つメソッドを使った戻り値でobjを受け取りたいのなら強引に自作するという方法もあります。しかし、この手法は連想配列の配列を持つArrayにしかまともに動作しないのに、全てのArrayで呼び出すことができるので、動作がおかしくなる可能性はあります。
Javascript
1// ArrayにconvertDictArrayToDictというメソッドを追加する
2Object.defineProperty(Array.prototype, 'convertDictArrayToDict', {
3 enumerable: false,
4 value: function (key, val) {
5 var ret = {};
6 for(var index in this) {
7 var map = this[index];
8 ret[map[key]] = map[val];
9 }
10 return ret;
11 }
12});
13
14var ary = [{name:'hoge', value:1}, {name:'fuga', value:2}];
15var obj = {};
16obj = ary.convertDictArrayToDict("name", "value"); // 呼び出して使う
17
18var ary2 = [1, 2, 3, 4, 5];
19ary2.convertDictArrayToDict("a", "b"); // ただの配列にもこのメソッドは存在するが、当然おかしな動作になる
素直にfunctionを作って、そちらを使うべきだと思います。
Javascript
1function convertDictArrayToDict(ary, key, val) {
2 var ret = {};
3 for(var index in ary) {
4 var map = ary[index];
5 ret[map[key]] = map[val];
6 }
7 return ret;
8}
9
10var ary = [{name:'hoge', value:1}, {name:'fuga', value:2}];
11var obj = {};
12obj = convertDictArrayToDict(ary, "name", "value");