Почему не работает вывод в алерт с фильтра?

Не выводит текст в алерте с проверенного блока

let elems = Array.from(document.querySelectorAll('.item'));
let c = elems.filter(function(currentValue, index){
    return currentValue.classList.contains('red');
 });

alert(c.innerHTML);
<div class="item red">1</div>
<div class="item green">2</div>
<div class="item red">3</div>
<div class="item blue">4</div>
<div class="item red">5</div>


Ответы (2 шт):

Автор решения: De.Minov

Переменная c возвращает массив. И как уже сказали в комментариях - у массива нет ключа innerHTML.
Но он есть у элементов массива, следовательно проходим циклом по массиву и выводим innerHTML

let elems = Array.from(document.querySelectorAll('.item'));
let c = elems.filter(function(currentValue, index){
    return currentValue.classList.contains('red');
 });

console.info(c);

[...c].map(e => console.info(e.innerHTML));
<div class="item red">1</div>
<div class="item green">2</div>
<div class="item red">3</div>
<div class="item blue">4</div>
<div class="item red">5</div>

→ Ссылка
Автор решения: Алексей Шиманский

filter применяется к массиву. Возвращает он тоже массив. А innerHTML должен применяться у конкретного элемента, а не у массива. В целом, для решения проблемы - надо в цикле пробежаться по массиву и взять у элементов то, что нужно

→ Ссылка