Показать сообщение отдельно
  #6 (permalink)  
Старый 12.10.2018, 14:19
Аватар для SuperZen
Профессор
Отправить личное сообщение для SuperZen Посмотреть профиль Найти все сообщения от SuperZen
 
Регистрация: 08.11.2017
Сообщений: 642

Не проверял, но идея примерно такая,)
/* CALCULATION */
    function calc() {
      let result = 0;

      // здесь будем хранить результаты подсчетов для graph
      let graphs = {

      }
      for (let i = 0; i < qs.length; i++) {
        let q = qs[i];
        let s = 0;
        let c = 0;
        for (let j = 0; j < q.answer.length; j++) {
          let a = q.answer[j];
          if (a.input.checked) {
            // сохраним в graph какие-то вычисления
            if (!graphs[q.graph]) {
              graphs[q.graph] = {}
              graphs[q.graph].value = parseInt(a.input.value)
              graphs[q.graph].count = 1
            } else {
              graphs[q.graph].value += parseInt(a.input.value)
              graphs[q.graph].count += 1
            }
            c++;
            s += a.input.value * 1;
            console.log(i, j, c, s)
          }
        }
        if (c > 0) result += s / c;
        // здесь объект graphs содержит сумму в value, и кол-во складываний в count для каждой graph
        // Object.entries(graphs).forEach(([graphId, graph]) => {
        //   console.log(graphId, graph.value / graph.count)
        // })


      }
      document.getElementById('result').textContent = result + '%';
    }

Последний раз редактировалось SuperZen, 12.10.2018 в 14:21.
Ответить с цитированием