在meteor上运行underscorejs
时,我遇到了以下问题。
“模板助手中的异常:TypeError:_. mapObject不是 函数“
请告知。
var types = _.groupBy(areaFlatten, 'category');
console.log(types);
var result = **_.mapObject**(types, function(val, key) {
return _.reduce(val, function(memo, v) {
return memo + v.val;
}, 0) / val.length * 10;
答案 0 :(得分:3)
我认为您使用的是较旧版本的Underscore。 v1.8.0(http://underscorejs.org/#changelog)
中添加了_.mapObject
不使用_.mapObject
的替代方案:
var types = _.groupBy(areaFlatten, 'category');
console.log(types);
var result = {};
_.each(types, function(val, key) {
result[key] = _.reduce(val, function(memo, v) {
return memo + v.val;
}, 0) / val.length * 10;
});
如果您要定期使用此功能,您可以添加一个mixin以使该功能可用,直到您有机会升级,请参阅此处https://jsfiddle.net/Lradh7jd/1/
_.mixin({
mapObject: function(obj, iteratee, context) {
var output = {};
_.each(obj, function(v, k) {
output[k] = iteratee.apply(context || this, arguments);
});
return output;
}
});