我有一个对象列表,其中每个对象都有数值:
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() })
它仍然只返回对象列表。
我做错了什么?
答案 0 :(得分:3)
var res = _.map(cpuInfo, function (el) {
return _.values(el)
})
res = _.flatten(res)
console.log(res);
答案 1 :(得分:1)
纯JavaScript
temp = [];
cpuInfo.forEach(function(obj){
Object.keys(obj).forEach(function(k){
temp.push(obj[k]);
});
});
参考 - Object.keys()
,Array.prototype.forEach()
注意 - 这两个功能都兼容> IE8