Задать вопрос
@SeventimeSsS

Почему indexOf возвращает первый элемент массива?

Есть массив (взял малую его часть)
const arr = [
...
{our_id: 10234,  name_ru: 'Матч! Футбол 1 HD',  number: 330},
{our_id: 15786,  name_ru: 'Horror TV',  number: 12},
{our_id: 105,  name_ru: 'Первый канал',  number: 1},
{our_id: 115,  name_ru: 'Россия-1',  number: 2},
...
]


Мне нужно отфильтровать его по параметру number и вывести только те объекты, у которых будет схож хоть один символ
К примеру ввожу символ "1" и фильтрую этот массив выведутся следующие объекты:
{our_id: 105, name_ru: 'Первый канал', number: 1},
{our_id: 15786, name_ru: 'Horror TV', number: 12},

Сейчас я сделал так
const filteredChannel = () => {
    if (playlistModel.Channels) {
      let searchRes = playlistModel.Channels.filter((item: any) => {
        console.log(item)
        let finalRes = item.number
        console.log(finalRes)
        return finalRes.indexOf(searchNumber) !== -1
      })
      
      setChannels(searchRes)
    }
  }


Но выходит такая ошибка при воде любого символа
63d0db3f9cf11039049690.png
  • Вопрос задан
  • 71 просмотр
Подписаться 1 Простой Комментировать
Решения вопроса 1
@alexalexes
finalRes у вас типа целого числа в данной ситуации. У него не будет метода indexOf. Нужен финт ушами, чтобы принудительно преобразовать его в строку:
let finalRes = item.number + "";
PS: Ставите ; в строках JS, игнорирование их может сыграть злую шутку.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Smirator
Вчера разбирался с похожим функционалом.
Мой вопрос тут: https://qna.habr.com/q/1244998
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
25 дек. 2024, в 08:00
20000 руб./за проект
25 дек. 2024, в 07:53
20000 руб./за проект
25 дек. 2024, в 07:45
20000 руб./за проект