Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   сумма чисел в строке. (https://javascript.ru/forum/events/50642-summa-chisel-v-stroke.html)

DEADMOROZ 05.10.2014 16:50

сумма чисел в строке.
 
Есть таблица с числами через запятую:
<table>
 <tr><th>Всего:</th><td>3,5,2,4,5,5</td></tr>
</table>

Как сделать так, чтобы скрипт получил сумму этих чисел, а затем разделил их на их количество?

Vlasenko Fedor 05.10.2014 23:19

<table>
      <tr>
        <th>Всего:</th>
        <td>3,5,2,4,5,5</td>
      </tr>
    </table>
    <script>
      window.onload = function () {
        var data = document.getElementsByTagName('td')[0].innerHTML.split(',');
        var sum = 0;
        for (var len = data.length; len--;) {
          sum += +data[len];
        }
        alert(sum + '\n' + sum / data.length);
      }
    </script>

Только лучше задайте ячейке td id <td id="res">
Тогда var data = document.getElementById('res').innerHTML.split(',' );

danik.js 06.10.2014 05:45

<table>
      <tr>
        <th>Всего:</th>
        <td>3,5,2,4,5,5</td>
      </tr>
    </table>
    <script>
     var data = document.querySelector('td').textContent.split(',');
     var sum = data.map(parseFloat).reduce(function(a, b) {return a + b});
     var avg = sum / data.length;
     alert(sum + '\n' + avg);
    </script>

Не работает в старых браузерах, не поддерживающих ES5


Часовой пояс GMT +3, время: 07:32.