在underscore/lodash中,如何避免`map`方法中的重复计算?
In underscore/lodash, how to avoid duplicate calculation in a `map` method?
这是我的代码:
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();
这是我的代码:
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();