Показать сообщение отдельно
  #8 (permalink)  
Старый 24.10.2023, 15:23
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,745

Что то типа такого
<body>

<div class="slot" data-slot="1" data-age="20" data-sum="50"></div>
<div class="slot" data-slot="2" data-age="30" data-sum="40"></div>
<div class="slot" data-slot="1" data-age="20" data-sum="100"></div>
<div class="slot" data-slot="1" data-age="20" data-sum="70"></div>
<div class="slot" data-slot="2" data-age="30" data-sum="60"></div>

<script>
const slot = [...document.querySelectorAll('.slot')];
const map = slot.reduce((map,el) =>{
	const item = el.dataset.slot + '_' + el.dataset.age;
	map[item] ??=  +el.dataset.sum;
	if (map[item] < +el.dataset.sum) map[item] = +el.dataset.sum;
	return map;
}, {});

const arr = [];

for (const item in map) {
	const [slot, age] = item.split('_');
	arr.push({slot, age, sum: ''});
	arr.push({slot, age, sum: map[item]});
}

console.log(arr);
</script>
</body>

Последний раз редактировалось voraa, 24.10.2023 в 15:26.
Ответить с цитированием