使用下划线从javascript中的对象列表中提取值

使用下划线从javascript中的对象列表中提取值,javascript,node.js,underscore.js,Javascript,Node.js,Underscore.js,我有一个对象列表,其中每个对象都有数值: var cpuInfo = [ { user: 189625143, nice: 0, sys: 40239022, idle: 2087123838, irq: 720490 }, { user: 76627160, nice: 0, sys: 35444113, idle: 2204916386, irq: 18233303 } ] 我需要计算idle的值除以所有值的总和 为此

我有一个对象列表,其中每个对象都有数值:

var cpuInfo = [
  { user: 189625143,
    nice: 0,
    sys: 40239022,
    idle: 2087123838,
    irq: 720490 },
  { user: 76627160,
    nice: 0,
    sys: 35444113,
    idle: 2204916386,
    irq: 18233303 }
]
我需要计算
idle
的值除以所有值的总和

为此,我需要得到所有对象中所有值的总和

我尝试这样做只是为了提取值:

_(cpuInfo).each(_.values)
我希望它会返回这样的列表:

[189625143, 0, 40239022, 2087123838, 720490, 76627160, 0, 35444113, 2204916386, 18233303]
但出于某种原因,它返回的与我开始时完全相同的东西——一个对象列表。 即使我把它扩展到:

_(cpuInfo).each(function(item) { return _(item).values() })
它仍然只返回对象列表

我做错了什么

var res = _.map(cpuInfo, function (el) {
  return _.values(el)  
})
res = _.flatten(res)

console.log(res);
演示:

演示:

纯JavaScript

temp = [];
cpuInfo.forEach(function(obj){
    Object.keys(obj).forEach(function(k){
        temp.push(obj[k]);
    });
});
参考-

注意-这两个函数都与纯JavaScript中的>IE8

兼容

temp = [];
cpuInfo.forEach(function(obj){
    Object.keys(obj).forEach(function(k){
        temp.push(obj[k]);
    });
});
参考-

注意-两个功能均与>IE8兼容