Показать сообщение отдельно
  #5 (permalink)  
Старый 11.08.2023, 22:21
Новичок на форуме
Отправить личное сообщение для alena0309 Посмотреть профиль Найти все сообщения от alena0309
 
Регистрация: 11.08.2023
Сообщений: 5

Сообщение от Aetae Посмотреть сообщение
Раскрыл запись и вынес наверх то что необязательно задавать налету:
const nameFilterUpper = nameFilter.toUpperCase();
const wrapItemNameInSpan = (item) => `<span class="name">${item.name}</span>`;

// сейчас у тебя так
const render = () => {
  document.body.innerHTML = users.filter((item) => {
    const itemNameUpper = item.name.toUpperCase();

    // естественно .map не функция, т.к. .includes возаращает Boolean, а у Boolean нет метода .map
    return !nameFilter || itemNameUpper.includes(nameFilterUpper).map(wrapItemNameInSpan).join(``)
  });
}

// а должно быть так
const render = () => {
  document.body.innerHTML = users.filter((item) => {
    const itemNameUpper = item.name.toUpperCase();
    
    return !nameFilter || itemNameUpper.includes(nameFilterUpper)
  }).map(wrapItemNameInSpan).join(``);
}

Так гораздо очевиднее проблема.

Если вы пока теряетесь в коротких записях рекомендую всё расписывать подробно, а не в одну строчку, так гораздо меньше шанс запутаться.
Поняла) Тогда завтра попробую вставить Ваш код.
Ответить с цитированием