Это, наверное, звучит запутанно - я запутал себя, пишу это, ха. Так что в основном у меня есть несколько путей SVG, которые имеют идентификаторы, такие как 20_11_3, который является blockID_rowId_seatId.
<svg>
<path class="seat" data-id="20_11_1"></path>
<path class="seat" data-id="20_11_2"></path>
<path class="seat is-available" data-id="20_11_3"></path>
<path class="seat is-available" data-id="20_11_4"></path>
<path class="seat" data-id="20_11_5"></path>
<path class="seat" data-id="20_11_6"></path>
<path class="seat is-available" data-id="20_11_7"></path>
<path class="seat" data-id="20_12_1"></path>
<path class="seat" data-id="20_12_2"></path>
<path class="seat" data-id="20_12_3"></path>
<path class="seat" data-id="20_12_4"></path>
<path class="seat is-available" data-id="20_12_5"></path>
<path class="seat" data-id="20_12_6"></path>
<path class="seat" data-id="20_12_7"></path>
<path class="seat" data-id="21_1_1"></path>
<path class="seat" data-id="21_1_2"></path>
<path class="seat is-available" data-id="21_1_3"></path>
<path class="seat is-available" data-id="21_1_4"></path>
<path class="seat is-available" data-id="21_1_5"></path>
<path class="seat" data-id="21_1_6"></path>
<path class="seat" data-id="21_1_7"></path>
</svg>
Мне нужно взять группу мест, у которой больше всего мест рядом с другой. Таким образом, в этом случае выше выбора будет список узлов из трех доступных мест в блоке 21, строка 1.
Полагаю, мне придется начать с выбора всех мест seat.is-available, используя querySelector all, и затем отфильтровать их, чтобы получить лучшую группу из 4 мест. На самом деле изо всех сил пытается выяснить, как это сделать без чрезмерного проектирования до смерти.
Надеюсь, все это имеет смысл.