Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 18.05.2023, 10:11
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

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>
Ответить с цитированием
  #12 (permalink)  
Старый 18.05.2023, 10:15
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 778

На входе у меня объект.
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 будут подставляться в вычисления.
})
Ответить с цитированием
  #13 (permalink)  
Старый 18.05.2023, 10:19
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 778

Вот напроимер 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"
Ответить с цитированием
  #14 (permalink)  
Старый 18.05.2023, 10:24
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

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) {
                    // есть совпадения, что-то делаем
                }
            }
        })
Ответить с цитированием
  #15 (permalink)  
Старый 18.05.2023, 10:25
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 778

Сообщение от рони
result[id] = ar;
Наверное так, уже что то у меня и получится). Буду пробовать.Спасибушки)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Reactjs сохранение данных объекта при обновлении состояния PereCC Библиотеки/Тулкиты/Фреймворки 0 18.12.2022 16:03
Возврат данных в форму при возврате на страницу Manyasha Общие вопросы Javascript 2 22.08.2020 10:51
Необъяснимое поведение прокрутки при использовании homekey demoniqus Events/DOM/Window 2 26.08.2019 10:05
Проблема при подстановке переменной при получении данных из JSON Rodriguez11 Элементы интерфейса 2 19.08.2019 19:29
Сохраннение измененных данных при клике на кнопку Tanya51 Общие вопросы Javascript 0 10.08.2017 11:35