ureech,
<!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> </head> <body> <div class="group"> <div data-cost="0" class="item">1</div> <div data-id="id" data-cost="10" class="item">2</div> <div data-cost="20" class="item">3</div> </div> <div class="group"> <div data-cost="0" class="item">1</div> <div data-cost="30" class="item" data-id="id">2</div> <div data-cost="40" class="item" data-id="test">3</div> </div> <div class="group"> <div data-cost="0" class="item show">4</div> <div data-cost="50" data-id="id" class="item show">5</div> <div data-cost="60" class="item show" data-id="test">6</div> </div> <script> let items = document.querySelectorAll('.item[data-id]'); let result = {}; let obj = [...items].reduce((ob, { dataset: { cost, id } }, i) => { let ar = ob[id]; if (!ar) ob[id] = ar = [cost]; else { ar.push(cost); result[id] = ar; } return ob }, {}); document.write(JSON.stringify(result)) </script> </body> </html> |
На входе у меня объект.
let list = $('.pubmods__mods-list__item'); Object { 0: div.pubmods__mods-list__item, 1: div.pubmods__mods-list__item, 2: div.pubmods__mods-list__item, 3: div.pubmods__mods-list__item, 4: div.pubmods__mods-list__item, 5: div.pubmods__mods-list__item.show-always, 6: div.pubmods__mods-list__item.show-always, 7: div.pubmods__mods-list__item.show-always, 8: div.pubmods__mods-list__item.show-always, 9: div.pubmods__mods-list__item.show-always, … } далее этот объект периберается list.each(function(i, el) { //тут идут разные вычисления с параметрами el. //И мне надо тут проверять, есть ли элементы с одинаковыми dataset.id. Плюс dataset.id может и не быть. И если есть получать их dataset.cost. И эти dataset.cost будут подставляться в вычисления. }) |
Вот напроимер dataset
dataset: DOMStringMap(5) { costPrefix → "+", modifImg → "/images/modificators/razmer.jpg", modifName → "120х200", … } costPrefix: "+" linkId: "07cd4e627e93c535a342a195a6da523285efffbc3c671044" modifCost: "15000" modifImg: "/images/modificators/razmer.jpg" modifName: "120х200" |
ureech,
let objId = {}; list.each(function(i, el) { //тут идут разные вычисления с параметрами el. //И мне надо тут проверять, есть ли элементы с одинаковыми dataset.id. Плюс dataset.id может и не быть. И если есть получать их dataset.cost. И эти dataset.cost будут подставляться в вычисления. let id = el.dataset.id; if (id) { let ar = objId[id]; if (!ar) ar = objId[id] = []; ar.push(el); if (ar.length > 1) { // есть совпадения, что-то делаем } } }) |
Цитата:
|
Часовой пояс GMT +3, время: 22:06. |