@greedy_wizard

Как найти одинаковые значения с двух массивов и добавить класс 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')
    }
});
  • Вопрос задан
  • 96 просмотров
Решения вопроса 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
вместо
if(id == itemIDs) {
        el.classList.add('active')
    }

надо что-то типа
if (itemIDs.includes(id)) {
        el.classList.add('active');
    } else {
        el.classList.remove('active');
    }
или то же, короче:
el.classList[itemIDs.includes(id) ? 'add' : 'remove']('active');
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@alekcena
Нелинейный наставник
У массивов есть 2 метода, определения, есть ли это в массиве
1) indexOf - возвращает индекс или -1 если ничего не нашёл.
2) includes - возвращает true/false, нужно посмотреть по поддержке или бабель. Не уверен что все поддерживают
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы