在下划线/lodash中,如何避免在“map”方法中重复计算

In underscore/lodash, how to avoid duplicate calculation in a `map` method?

本文关键字:方法 计算 map 何避免 下划线 lodash      更新时间:2023-09-26

这是我的代码:

var transformed = _(original).map(function (c) {
    return {
        lat: wgs2gcj(c.latitude, c.longitude).lat
        lng: wgs2gcj(c.latitude, c.longitude).lng
    }
});

假设wgs2gcj是来自第三方库的函数,需要很长时间才能计算。有没有办法只进行一次计算?

transformed = _(original).map(function (c) {
    var coordinates = wgs2gcj(c.latitude, c.longitude);
    return {
        lat: coordinates.lat
        lng: coordinates.lng
    }
});

对于更少的代码,你也可以使用 pick():

_(original)
    .map(function(c) {
        return _.pick(wgs2gcj(c.latitude, c.longitude), 'lat', 'lng');
    })
    .value();