2014-11-30 3 views
0

У меня есть список объектов, где каждый объект имеет численные значения:Извлечь значения из списка объектов в JavaScript с помощью подчеркивания

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

Он по-прежнему возвращает только список объектов.

Что я делаю неправильно?

ответ

1

В чистом JavaScript

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

Ref - Object.keys(), Array.prototype.forEach()

Примечание - обе функции совместимы с> IE8

Смежные вопросы