Javascript 使用pickBy而不是每个
你好,我有一个问题要用lodash重构我的代码,我做了一个程序来计算一个对象的整数的平均值。我想用u.pickBy代替u.each 这是我的程序,每个程序都有一个Javascript 使用pickBy而不是每个,javascript,lodash,Javascript,Lodash,你好,我有一个问题要用lodash重构我的代码,我做了一个程序来计算一个对象的整数的平均值。我想用u.pickBy代替u.each 这是我的程序,每个程序都有一个 var my_obj = {a: 1, b:2, c: 'foo', d: 'bar', w:3, z:4}; function mean(obj) { var temp=0; var count=0; _.each(obj, function(value, key){ if(_.isNumber(value))
var my_obj = {a: 1, b:2, c: 'foo', d: 'bar', w:3, z:4};
function mean(obj) {
var temp=0;
var count=0;
_.each(obj, function(value, key){
if(_.isNumber(value)){
result += value
count += 1
}
})
return temp / count;
}
mean(my_obj) //outputs is 2.5 in this exemple
我无法将_isNumber与_pickBy一起使用。pickBy:
function mean(obj) {
var result = 0
return _.pickBy(obj, function(value, key){
return _.isNumber{(value)
// how to have the sum and divise by the number of integer objects ?
})
}
由于您需要的是数字数组,而不是对象,请使用with获取数字数组,然后返回数组的:
函数平均值(obj){
返回平均值(u.filter(obj,u.isNumber));
}
var my_obj={a:1,b:2,c'foo',d'bar',w:3,z:4};
console.log(平均值(my_obj))代码>
您是否只寻找基于lodash的答案?或者vanilla js answer也可以工作?如果您不需要\uu.pickBy()
的过滤输出,那么您就不必麻烦调用它了