Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/430.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在下划线/lodash中,如何避免“map”方法中的重复计算?_Javascript_Functional Programming_Underscore.js_Lodash - Fatal编程技术网

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

Javascript 在下划线/lodash中,如何避免“map”方法中的重复计算?,javascript,functional-programming,underscore.js,lodash,Javascript,Functional Programming,Underscore.js,Lodash,这是我的密码: var transformed = _(original).map(function (c) { return { lat: wgs2gcj(c.latitude, c.longitude).lat lng: wgs2gcj(c.latitude, c.longitude).lng } }); 比如说,wgs2gcj是来自第三方库的函数,计算起来需要很长时间。有没有办法只进行一次计算?对于较少的代码,您也可以使用: transfo

这是我的密码:

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
    }
});

对于更少的代码,您还可以使用:

如果出现重复条目,则可能与组合。如果出现重复条目,则可能与组合。
_(original)
    .map(function(c) {
        return _.pick(wgs2gcj(c.latitude, c.longitude), 'lat', 'lng');
    })
    .value();