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 回答