Javascript 使用pickBy而不是每个

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

你好,我有一个问题要用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)){
      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()
的过滤输出,那么您就不必麻烦调用它了