Возможно ли создать массив с HTMLelement ключем и строкой в значении?
По типу:
let arr = [
div.Something: 5 2
]
Ответы (1 шт):
Автор решения: Vasiliy Rusin
→ Ссылка
Для реализации того что Вы описали в задаче лучше всего использовать Map
.
Например, если в HTML у нас есть такой unorder list:
<ul>
<li class="list"></li>
<li class="list"></li>
<li class="list"></li>
</ul>
В JS мы создаем новый Map
, в отличии от Array
, в котором ключи это всегда индексы элемента в массиве, или Object
в котором ключи это всегда строки.
В Map
ключами может быть любая сущность, в том числе и другой объект. HTMLElement
это как раз тоже объект.
const map = new Map();
const lists = document.getElementsByClassName("list");
for (const list of lists) {
map.set(list, [1, 2]);
}
console.log(map.get(lists[0]));
const map = new Map();
const lists = document.getElementsByClassName("list");
for (const list of lists) {
map.set(list, [1, 2]);
}
console.log(map.get(lists[0]));
<ul>
<li class="list"></li>
<li class="list"></li>
<li class="list"></li>
</ul>