В Метеоре, как я могу сделать сумму некоторых вычисленных полей в таблице?

Я полностью переписал этот вопрос, потому что я добился некоторого прогресса, и мне также нужно было уточнить его дальше.

В общем - я хотел бы вычислить итоги строк и столбцов для таблицы без необходимости пересчитывать значение каждой ячейки дважды. Позволь мне объяснить.

У меня есть коллекция, и каждый документ содержит 12 значений. Для каждого документа мне нужно выполнить два медленных и дорогих вычисления для этих 12 значений документа, чтобы получить два результата, а затем отобразить эти два результата в таблице. Затем мне также нужна сумма двух вычисленных результатов в каждой строке и сумма всех вычисленных результатов для каждого столбца.

Страница будет выглядеть так:

resa    resb    row1sum
resa    resb    row2sum
(etc)
col1sum col2sum

И часть шаблона может выглядеть так:

<table>
{{#each docs}}
  <tr><td>{{resa}}</td> <td>{{resb}}</td> <td>{{rowsum}}</td></tr>
{{/each}}
<tr><td>{{colsum1}}</td> <td>{{colsum2}}</td>
</table>

Теперь для каждой строки я использую предложение transform в моем помощнике курсора для генерации результатов и строк.

docs: function() {

return myCollection.find({},{transform: function(doc) {
  var resa = slowcalculation1(doc);
  doc.resa = resa;
  var resb = slowcalculation2(doc);
  doc.resb = resb;
  doc.rowsum = resa+resb;
  return doc;
  }
});

},

Это хорошо работает для расчета двух результатов и строки для каждого документа и является реактивным.

Но сейчас я пытаюсь найти способ эффективно рассчитать суммы столбцов.

Я мог бы использовать следующее

Tracker:autorun(function()
{
  var col1tot=0;
  var col2tot=0;
  myCollection.find().forEach(function(doc) {
    var resa = slowcalculation1(doc);
    col1tot += resa;
    var resb = slowcalculation2(doc);
    col2tot += resb;
    });
  Session.set('col1',col1tot);
  Session.set('col2',col2tot);
  // then get these coltotals using helpers
});

Но есть ли лучший способ? В настоящее время для генерации страницы я вызываю slowcalculations () дважды для каждой ячейки, и мне нравится вычислять каждое значение ячейки только один раз, поскольку мои вычисления, к сожалению, медленные. :)

Могу ли я вместо этого как-то вычислить суммы столбцов, но внутри моего помощника курсора?

Или есть какой-то другой способ реактивно взять всю коллекцию и реактивно генерировать как строки, так и столбцы за один проход?

Ответы на вопрос(1)

Ваш ответ на вопрос