0

これを変換するより速い方法はありますか:

[
    { name: 'name1', value: 'value1' },
    { name: 'name2', value: 'value2' },
    { name: 'name3', value: 'value3' },
    ...
]

これに:

{
    name1: value1,
    name2: value2,
    name3: value3,
    ...
}

オブジェクトを手動でループして塗りつぶすことなく?アンダースコアライブラリにこれを行う方法はありますか? すでにアプリケーションに組み込まれているため、追加費用なしで使用できます。

現在、私は手動でアクションを実行していますが、それが私ができる最高のパフォーマンスであるかどうかはわかりません.

    var data = [];      // see the array above
    var result = {};
    for(var i = 0; i < data.length; i++)
    {
        var o = data[i];
        result[o.name] = o.value;
    }
4

1 に答える 1

1

もっと速い方法はないと思います。アンダースコアを使用すると、より短い方法がありますが、ほぼ確実にループよりも遅くなります。

var result = _.reduce(data, function(r,o) { r[o.name] = o.value; return r; }, {}); 
于 2012-04-26T15:05:34.537 に答える