Сумма классов js

262
03 апреля 2018, 01:32

Нужно получить сумму классов у которых data-option равны

<p class="sum" data-option="2018.04.02">100</p>
<p class="sum" data-option="2018.04.02">100</p>
<p class="sum" data-option="2018.04.03">200</p>
<p class="sum" data-option="2018.04.03">200</p>

Получить нужно массив

Answer 1

Попробуйте такой вариант.

function func() {
    // берем все элементы с классом sum
    var elements = document.getElementsByClassName('sum');
    var obj = {}
    // проходим по всем элементам
    for (var i = 0; i < elements.length; i++) {
        var attribute = elements[i].getAttribute('data-option') // берем значение аттрибута
        var value = Number(elements[i].innerHTML) // берем значение и переводим в число
        // если такой ключ уже существует, то прибавляем к значению текущее значение
        if (obj[attribute]) { 
            obj[attribute] += value
        // если такого ключа нет, то создаем
        } else {
            obj[attribute] = value
        }
    }
    // берем только значения объекта
    var result = Object.values(obj)
}
READ ALSO
Как изменить размер изображения в canvas?

Как изменить размер изображения в canvas?

Есть объект canvasКак изменить его ширину сохраняя пропорции? Затем я его преобразую в готовый код image

270
JS перебор массива, вывод в HTML

JS перебор массива, вывод в HTML

Из БД получаю 5 массивов в виде:

250
Как отправить get запрос ajax?

Как отправить get запрос ajax?

Нужно отправить get запрос на url:

224
Как перенести на новую строку в JS?

Как перенести на новую строку в JS?

Не как не могу сделать перенос строки\r\n <br/> все пробовали

319