Найти одинаковые значения с двух массивов и добавить класс JS
Помогите пожалуйста с задачей. Есть один массив со значением кодов стран и есть второй массив со значениями стран которые необходимо выделить нужно добавить класс active к тому элементу, который совпадает по значению. Спасибо большое.
Код:
let itemIDs = []
let countryIDs = []
let mapItem = document.querySelectorAll('.world-map__item')
let mapCountry = document.querySelectorAll('.map-country')
mapItem.forEach( el => {
itemIDs.push(el.dataset.countryId)
});
mapCountry.forEach( el => {
countryIDs.push(el.getAttribute('id'))
});
mapCountry.forEach( el => {
let id = el.getAttribute('id')
?????????????????????????
if(id == itemIDs) {
el.classList.add('active')
}
});
Ответы (2 шт):
Автор решения: Jarry Roxwell
→ Ссылка
Если все верно понял то так можно
let mapItem = document.querySelectorAll('.world-map__item')
[].map.call(
mapItem,
el => {
let id = el.dataset.countryId;
let Country = document.getElementByID(id);
if(Country) Country.classList.add('active');
}
);
Автор решения: GreedyWizards
→ Ссылка
Нужно заменить
if(id == itemIDs) {
el.classList.add('active')
}
на
el.classList[itemIDs.includes(id) ? 'add' : 'remove']('active');