Фильтрация массива объектов Javascript

Поділитися
Вставка
  • Опубліковано 8 вер 2024
  • Фильтрация массива с объектами по свойствам. Применение на практике.
    👁‍🗨 Телеграм: t.me/frontend_du2
    👁‍🗨 Discord: / discord
    👁‍🗨 VK: frontend
    👁‍🗨 Дзен: dzen.ru/frontend
    👁‍🗨 Rutube: rutube.ru/u/fr...

КОМЕНТАРІ • 116

  • @user-oq9et6zp1k
    @user-oq9et6zp1k Рік тому +11

    Обучаюсь в скиллбоксе, в разделе JS ничего похожего даже нет, преподают сухую инфу, и без примеров.
    Все доходчиво, понятно, и самое главное на примере видно, где и как можно использовать! Спасибо)) Помогли сделать дз)

    • @alex_dudukalo
      @alex_dudukalo  Рік тому +3

      Спасибо вам за ваш комментарий. Записываю видео без подготовки и всегда стараюсь говорить своим языком. Возможно где то запинаюсь и говорю некорректно, но наверное это задает тон живого общения с зрителем. Я работаю над улучшением. Спасибо вам. В видео на курсе немного другой формат, но думаю там тоже скоро будут изменения :)

    • @user-rs9jn9oy5g
      @user-rs9jn9oy5g Рік тому +1

      я тоже там обучаюсь и нередко вижу сообщения в чате о том что кто-то совсем ничего не понимает, и мало инфы, увы я такой же. прохожу 6-ой модуль но ВООБЩЕ не вдупляю как и что и никто не объясняет.

    • @kuetama
      @kuetama 5 місяців тому +1

      @@alex_dudukalo судя по тому, что с момента выхода вашего видео прошел год - изменений не наблюдается. Я бы не смогла там учиться без ваших роликов.

  • @nikitadanilovspb
    @nikitadanilovspb 10 місяців тому +4

    Что новые, что старые видео Александра - топ! Отменный образовательный контент! Сижу, тренирую массивы и подсматриваю сюда. Большое спасибо!

    • @alex_dudukalo
      @alex_dudukalo  10 місяців тому +1

      Безумно приятно читать такие комментарии ☺ спасибо! Ваша поддержка очень вдохновляет))

  • @user-dziman
    @user-dziman 6 місяців тому

    Учусь в скиллбоксе, На js только Вашими и немного другими видео и спасаюсь. Скилл бокс мало даёт разбора и способов применения. Набираешь в скиллбоксе кучу знаний и не понимаешь как этим пользоваться, пока разберёшся может уйти пару минут , а может день и месяц и 2-3 недели. После todo list сначал захожу к Вам, смотрю, пока уляжется прохожу задания, потом возвращаюсь прохожу вместе, вставляя свои нюансы, подглядываю у других. Быстро не выходит - нужно нейронным связям видимо образоваться и закрепить навык. отличная подача материала и разбор вопросов.

  • @user-zl3kf3dh7u
    @user-zl3kf3dh7u 2 роки тому +8

    Очень понятно и доходчиво! Как раз в проекте своём нужно реализовать фильтры! Логику понимал, а с помощью Вашего видео теперь и общий шаблон-функцию смогу написать! Спасибо! Супер! Гораздо больше информативности чем в других подобных видео с тысячами просмотров!

    • @alex_dudukalo
      @alex_dudukalo  2 роки тому +1

      Здравствуйте, Стас. Прошу прощения за долгий ответ. Месяц был в завале. Но теперь я тут, буду снимать новые ролики :) Полезность видео - важнейшая оценка работы. Уж тем более, если вы применили это в реальной практической работе. Спасибо, что поддержали меня откликом :)

  • @user-lm9ee1gn5p
    @user-lm9ee1gn5p Рік тому +4

    Спасибо вам большое, в одном видео понял больше, чем в 10 таких же по тематике других

    • @alex_dudukalo
      @alex_dudukalo  Рік тому +1

      Я очень рад, что помог в этом видео разобраться) И так же спасибо за поддержку :)

  • @ssr.1989
    @ssr.1989 Рік тому +1

    Уважаемый Александр, перезапишите, пожалуйста, все видео по модулям JS в Skillbox. Вы очень хорошо объясняете. Многие нюансы указываете.
    А то ничего непонятно, сухая теория и приходится гуглить многое, чтобы понять.

    • @alex_dudukalo
      @alex_dudukalo  Рік тому +1

      Спасибо за ваш комментарий :) Я планирую сделать что то такое в рамках канала. Будет курс по базовой части языка, которую вы сможете посмотреть на ютубе )

  • @user-gx3ke4it4r
    @user-gx3ke4it4r 3 місяці тому

    Спасибо, Александр! С вами никаких курсов не нужно! Вы суперпрофи!

  • @pavelpatsenkov
    @pavelpatsenkov Рік тому

    Всё очень грамотно объяснили. Всё чётко, всё по теме. Спасибо огромное.

    • @alex_dudukalo
      @alex_dudukalo  Рік тому

      Павел, спасибо за Вашу поддержку! Очень рад, что видео оказалось Вам полезно 😊

  • @Denik-is6gi
    @Denik-is6gi Рік тому +1

    Как всегда все очень доступно и интересно объяснялось. Спасибо вам! Очень многому учусь у вас!

    • @alex_dudukalo
      @alex_dudukalo  Рік тому +1

      Спасибо вам за ваш комментарий ) Буду стараться регулярно делать ролики. Не всегда получается ответить вовремя (

  • @anitoriV
    @anitoriV 11 місяців тому

    Спасибо за очень подробный разбор и понятные объяснения! :)

    • @alex_dudukalo
      @alex_dudukalo  11 місяців тому

      Спасибо за ваш комментарий, надеюсь и другие видео курса будут вам полезны 🤗

  • @fedorich1191
    @fedorich1191 Рік тому +3

    Александр, огромное спасибо, за очередное крутое видео !
    Много их у вас пересмотрел, эо наверное пока на первом месте !)
    Как то вы тут, по подаче по содержанию ... И вот тому, что в конце все тосно понятно !
    Повторюсь, за все видео спасибо ! Просто это как то особенно хотелось выделить )
    Особенно хочу отметить момент, когда вы в конце прошлись по всему коду и еще раз разложили все по полочкам, объяснили ряд моментов.

    • @alex_dudukalo
      @alex_dudukalo  Рік тому +1

      Спасибо вам за такой информативный отзыв и что отметили важные моменты, которые понравились :) Буду стараться делать это чаще в следующих роликах (итоговые прогон кода) Думаю, действительно это полезно :) Большое вам спасибо за комментарий и поддержку

  • @user-cq6ye4pe8l
    @user-cq6ye4pe8l 5 місяців тому +1

    Спасибо вам большое, добрый человек, помогли решить задание

  • @shaxzodtursunmuratov5755
    @shaxzodtursunmuratov5755 Рік тому +2

    ВЫ МЕНЯ ООЧЕНЬ СПАСЛИИ!!! СПАСИБО

    • @alex_dudukalo
      @alex_dudukalo  Рік тому

      Я рад, что видео вам помогло ) Спасибо за комментарий :)

  • @relaxdeepsleepmusic3608
    @relaxdeepsleepmusic3608 6 місяців тому

    Александр спасибо за видео, значительно экономит время обучения, отпадает надобность обращаться с вопросами в чат

  • @asgard1428
    @asgard1428 2 роки тому

    Все понятно и ясно👍 Нужно больше практиковаться что бы вот так же без подсматривания взять и самому написать этот код.
    Спасибо за видео!

    • @alex_dudukalo
      @alex_dudukalo  2 роки тому

      Всегда приятно помочь :)

  • @a.k.9386
    @a.k.9386 Рік тому

    Огромное спасибо за такое доступное объяснение.

  • @antonyeskimo7593
    @antonyeskimo7593 Рік тому +1

    Все оч круто и подробно. Спасибо за видео

    • @alex_dudukalo
      @alex_dudukalo  Рік тому

      Большое спасибо вам за отклик

  • @boxforkids5532
    @boxforkids5532 Рік тому +1

    Спасибо за видео!!! Всё получилось.

    • @alex_dudukalo
      @alex_dudukalo  Рік тому

      Спасибо вам :) Рад, что ролик вам помог :)

  • @Mr.Riggs03
    @Mr.Riggs03 Рік тому

    Классная и понятная подача информации. Спасибо за Ваш труд

    • @alex_dudukalo
      @alex_dudukalo  Рік тому

      Спасибо за ваш комментарий😊 ваша поддержка очень важна

  • @megabulk
    @megabulk 2 роки тому +1

    Помню, помню эту задачку! Скил прокачивает мощно!

    • @alex_dudukalo
      @alex_dudukalo  2 роки тому

      Да, решил разобрать фильтрацию. Это очень популярный вопрос :)

  • @xanderkaingriff4196
    @xanderkaingriff4196 Рік тому +4

    Александр, я понимаю, что видео было записано год назад, и возможно кто-то писал об этом. Мне кажется я нашел ошибку. На 12 минуте когда вы пишите arr = filter(user, 'age', 17) вы перезаписываете переменную arr c новым массивом содержащим результат повторного выполнения фукнции filter. И arr содержит объекты отфильтрованные по возрасту из массива users, а не из массива с объектами лиц ФИО которых содержит "Иван". Переменная с массивом перезаписывается вторым вызовом filter. То же самое происходит и с "Евгениями". Впечатление уточнения поиска по дополнительным параметрам создается из-за того, что массив со всеми лицами содержит два объекта в которых есть "Иван" и только у них возвраст 17, и трех "Евгениев" и только у них возраст 21.

    • @alex_dudukalo
      @alex_dudukalo  Рік тому

      Здравствуйте, спасибо за ваш комментарий. Вы довольно хорошо описали ситуацию (ошибку) но кажется я не понял, что именно вы имели ввиду :( В итоге мы получаем массив только с теми элементами, которые удовлетворяют запросу. Или я ошибаюсь? Прошу прощения за долгий ответ.

    • @Alexseo100
      @Alexseo100 Рік тому +3

      @@alex_dudukalo Правильно так: let arr = filter(users, 'fio', 'Евгений')
      arr = filter(arr, 'age', 21)

    • @user-re6cg3yf2g
      @user-re6cg3yf2g 10 місяців тому +3

      ​@@alex_dudukaloсделайте в массиве Иванам или Евгениям разные возраста и вы приятно удивитесь ;)

    • @user-et6jk7qw8v
      @user-et6jk7qw8v 10 місяців тому +2

      ​@@alex_dudukalo​ Не понять объяснение в комментарии, на который вы ответили, можно только людям с iq ниже чем у автора канала. Больше похоже на то, что вы видите ошибку, но вам лень перезаписывать и исправлять это

    • @Trubka223
      @Trubka223 6 місяців тому

      ​@@user-et6jk7qw8vсамый умный и не ленивый пользователь ютуба тут как тут

  • @dukecca
    @dukecca Рік тому +1

    Спешу поделиться) Нашла свою ошибку в фильтрации. Изначально был глобальный массив и вся фильтрация проходила по нему, занося результат в локальный массив который и рендерился. Действительно просто...надо было просто скопировать глобальный массив в локальный и потом его же фильтровать и перезаписывать)

    • @alex_dudukalo
      @alex_dudukalo  Рік тому

      Отлично. Я рад, что у вас получилось разобраться. По опыту проверок, примерно так и понимал, что в этом будет ошибка ) Здорово

  • @user-ub8jf6ok9b
    @user-ub8jf6ok9b 2 роки тому +1

    Спасибо огромное! Очень понятно, очень полезно!

    • @alex_dudukalo
      @alex_dudukalo  2 роки тому

      Спасибо вам. Рад, что видео приносит пользу :)

  • @boburishanov221
    @boburishanov221 Рік тому +1

    raxmat juda ajoyib video 👍👍👍👍👍👍👍👍👍

  • @defender1101
    @defender1101 Рік тому +1

    Классное и понятное видео

    • @alex_dudukalo
      @alex_dudukalo  Рік тому

      Я рад, что видео помогло вам разобраться :) Спасибо за просмотр )

  • @igors7305
    @igors7305 2 роки тому +1

    Отличные видео. Помогают быстрее освоить JS.

    • @alex_dudukalo
      @alex_dudukalo  2 роки тому

      Рад таким откликам и тому, что изучение идет быстрее :)

  • @hatedsignals
    @hatedsignals Рік тому +1

    спасибо, горячая клавиша чтобы открыть терминал это ctrl + ~, и кстати все команды что ты вводишь в терминал сохраняются в истории, тебе не обязательно их заново вводить, терминалы во-первых с правой стороны сохраняются, а во-вторых, чтобы заново ввести команду можно просто стрелку вверх нажать

    • @alex_dudukalo
      @alex_dudukalo  Рік тому +1

      Спасибо, буду использовать ) На маке немного другая комби нация клавиш, но думаю дело привычки :)

  • @user-qc6rk9lm1l
    @user-qc6rk9lm1l 2 роки тому +1

    Спасибо большое за видео!

    • @alex_dudukalo
      @alex_dudukalo  2 роки тому

      Спасибо вас за просмотр и комментарий :)

  • @user-pp2oj2jw5k
    @user-pp2oj2jw5k 8 місяців тому

    ! + arrowUp чтобы не писать каждый раз node js....)) Спасибо большое за урок)
    Хотя возможно не у всех так)

  • @BMikel
    @BMikel 9 місяців тому

    Очень понравилось и полезно

    • @alex_dudukalo
      @alex_dudukalo  9 місяців тому

      Спасибо за обратную связь 🤗

  • @ruchnaya_klad_konst
    @ruchnaya_klad_konst Рік тому +2

    Александр, спасибо за Ваши разборы! Очень помогали в прохождении курса верстки. Сейчас прохожу JS, но дается с трудом (ощущение, что ничего не откладывается в голове). Понимаю, что нет волшебной таблетки, но все же подскажите пожалуйста вектор направления по изучению JS, где лучше практиковать и тд.

    • @alex_dudukalo
      @alex_dudukalo  Рік тому +1

      Спасибо за ваш отклик. Пожалуй я по этой теме запишу отдельный ролик. Что делать, если трудно. И поделюсь своим опытом. Я могу порекомендовать вам выполнять больше практических работ. Чем больше практики, тем лучше. Рекомендую попросить вашего куратора дать до материал для выполнения работы. Он поделится ссылками на интересные задачи. Думаю это может вам помочь )

  • @user-er5zo2hc9q
    @user-er5zo2hc9q 8 місяців тому +1

    Супер фильтр,классное видео,очень полезно,но есть один ньюанс функция фильтра не реагирует на регистр букв,к примеру если имя начинается с большой буквы ,а мы его ищем с маленькой то нам ничего не вернет фильтр ,я думаю это минус

    • @alex_dudukalo
      @alex_dudukalo  8 місяців тому +1

      Спасибо за ваш комментарий :) Да-да, вы правы. Игнорирование регистра сильно бы улучшило код. Здесь можно применить метод tolowercase для строк. У вас получилось или хотите это внедрить?

  • @nouchance
    @nouchance 2 роки тому +1

    Спасибо большое

  • @olegs4418
    @olegs4418 8 місяців тому

    Ну спасибо!!! 👍👍👍

    • @alex_dudukalo
      @alex_dudukalo  8 місяців тому

      Спасибо за отзыв 🤗

  • @antonyeskimo7593
    @antonyeskimo7593 Рік тому +1

    Чтобы каждый раз не вводить имя файла в терминале просто воспользуйся стрелкой вверх на клаве

    • @alex_dudukalo
      @alex_dudukalo  Рік тому

      Да крутая штука :) Консолью не так часто пользовался. Но ваша подсказка действительно упращает работу )) Спасибо

  • @bikadV
    @bikadV 4 місяці тому

    Было бы неплохо выкладывать исходники файлов.

  • @Denik-is6gi
    @Denik-is6gi Рік тому

    Очень полезный урок! Опять пишу комментарий смотрю. Но теперь когда воспользовался этим фильтром, всплыла проблемка.) Филтровать получается можно только в одном порядке? Сперва по имени, а потом по годам. В обратном не получается, сперва по годам, а потом по имени. Или это все же нормально?

  • @lery9523
    @lery9523 5 місяців тому +1

    Добрый день, большое спасибо за видео! Очень помогло. У меня вопрос, как фильтровать без нажатия на кнопку? Я имею ввиду ты начинаешь набирать текст и результат сразу отображается.

    • @alex_dudukalo
      @alex_dudukalo  5 місяців тому

      Спасибо за ваш комментарий :) Один из вариантов сделать запуск таймера при событии input текстового поля. В таймере прописывать фильтрацию. То есть при вводе чего-либо в input будет постоянно запускаться фильтрация )

  • @user-lg3jl7px7h
    @user-lg3jl7px7h Рік тому +1

    Александр, подскажите, пожалуйста, зачем мы вызываем render (users) в конце?

    • @alex_dudukalo
      @alex_dudukalo  Рік тому +1

      Это важно сделать для первой отрисовки контента, когда страница загружается :) Если в массив, что-то добавлено, то мы сразу увидим это при загрузке страницы :)

  • @march-hare
    @march-hare Рік тому

    Коллеги, здравствуйте! Во время просмотра видео возникло 2 вопроса: 1) Автор пытается отфильтровать целочисленное поле методом includes. Получается, если в выборке есть записи с возрастом в один порядок (до 10 лет), то попытка отфильтровать их приведет к добавлению в результат лишних записей. 2) При вызове итоговой ф-и автор два раза в качестве первого аргумента использует массив users. Соответственно должен два раза фильтроваться исходный массив, а итогом должна быть выборка по возрасту, но не по ФИО. Как получился верный результат, мне не понятно. Я считаю, что во втором вызове нужно подставлять в ф-ю массив arr - выходной результат первого выполнения ф-и filter.

    • @alex_dudukalo
      @alex_dudukalo  Рік тому

      Здравствуйте, спасибо за ваш комментарий. Попытаюсь разобрать вопросы (может быть не правильно их понял) Все числовые значения сначала будут преобразованы в строчные и потом применяется includes. Про лишние значения не совсем понял. Покажите пример такого массива? По второму вопросу. Сначала мы копируем исходный массив arr и далее, как вы и сказали - последовательно фильтруем один и тот же массив. Двумя заходами)

  • @van3ss
    @van3ss 6 місяців тому

    Подскажите, как сделать фильтрацию по дате окончания обучения? При условии, что дата окончания обучения не вводится пользователем, а выводится относительно даты начала обучения + 4

  • @dmitriy3059
    @dmitriy3059 Рік тому +1

    а можно как-то реализовать фильтрацию через arr.filter() ?

    • @alex_dudukalo
      @alex_dudukalo  Рік тому

      Да, конечно. Более того, я бы рекомендовал его использовать. По сути я в виде такую функцию (filter) написал сам :) Что бы показать, как это работает внутри для большего понимания. arr.filter() - отличное решение :)

  • @user-cy3eu1nq8p
    @user-cy3eu1nq8p 8 місяців тому

    В if де запускається метод includes необов'язково перевіряти на true тому що функція і так повертає логічне значення.

  • @user-mv1dg9fg5m
    @user-mv1dg9fg5m 2 роки тому

    👍

  • @iceRash
    @iceRash Рік тому +1

    а что делать если в одном поле 2 числа не рассказали как отфильтровать года обучения

  • @user-lq6bj9sm4f
    @user-lq6bj9sm4f Рік тому

    Здравствуйте! Как можно сделать фильтрацию при вводе нижнего регистра?

  • @user-lc5fi3iw1k
    @user-lc5fi3iw1k 6 місяців тому

    Добрый день! Скажите, как можно фильтровать пользователей по диапазону возраста, например >25лет, но

    • @alex_dudukalo
      @alex_dudukalo  6 місяців тому

      Здравствуйте, Для этого в условии должно быть следующее условное выражение
      if(obj.age > 25 && obj.age < 55) {
      result.push(obj)
      }

  • @RostyslavS-lc4qm
    @RostyslavS-lc4qm Рік тому

    Зачем в if делать проверку на 56 строке таким образом? Метод includes и так возвращает true или false, а вы потом это true/false проверяете равняется ли оно true. Если в круглых скобках убрать "== true" - результат будет тот же)
    P.S. использовать оператор нестрогого равенства в JS - вот что по настоящему плохой тон)

  • @boris___britva
    @boris___britva Рік тому +1

    второй раз попадаюсь в ловушку, когда хочется написать item.prop)) Потом понимаю, что в объекте нет ключа prop.

    • @alex_dudukalo
      @alex_dudukalo  Рік тому

      )) Да, отфильтровать будет не просто, с несуществующим свойством )

  • @artyrdanilov2791
    @artyrdanilov2791 Рік тому +1

    А исходники есть с объектом и CSS ?

    • @alex_dudukalo
      @alex_dudukalo  Рік тому

      К сожалению этот ролик один из первых, которые я записывал и в тот момент не сохраняли исходники. Прошу прощения ща долгий ответ :(

    • @artyrdanilov2791
      @artyrdanilov2791 Рік тому +1

      @@alex_dudukalo просто иногда не хватает файлов HTML CSS или JSON . их наличие облегчает процесс изучения.

    • @alex_dudukalo
      @alex_dudukalo  Рік тому

      @@artyrdanilov2791 Да, понимаю вас ) Поэтому все новые ролики публикую с исходниками в телеграме :)

  • @Green-ao
    @Green-ao 11 місяців тому

    а что если мне на до отфильтровать по двум именам? например, Иван и Алёна тоже?

    • @alex_dudukalo
      @alex_dudukalo  11 місяців тому

      Хороший вопрос :) В этом случае условие добавление элементов в массив будет сложнее. Там будет участвовать два параметра :)

  • @maksimvlaskin7305
    @maksimvlaskin7305 Рік тому +1

    +

  • @user-wj4pc7te1j
    @user-wj4pc7te1j 9 місяців тому +1

    А если нужно отобрать строго ИВАН, а не ИВАНов, сИВАНчан, дИВАНошвили и прочее составные? Где разбор строгого фильтра?!

    • @alex_dudukalo
      @alex_dudukalo  9 місяців тому

      Думаю можно записать такой ролик. Но в целом, тут все просто. Нужно переделать условие и убрать includes. Это может выглядеть так:
      let result = []
      if(obj[prop] === value) {
      result.push(obj)
      }

  • @AlekseyNaumov_734
    @AlekseyNaumov_734 Рік тому

    И что, данные о пользователе на сайте зиписываются именно в файл js?

    • @alex_dudukalo
      @alex_dudukalo  Рік тому

      Не уверен, что понял вопрос. Но не думаю, что хорошая идея изменять js файл. Да и скорее всего не получится его перезаписать из браузера )

  • @user-nx3xb2ge5g
    @user-nx3xb2ge5g 9 місяців тому

    фильтруешь по Ивану, а получаешь Иванову и тому подобных? отличный фильтр)))

  • @kontorasb2754
    @kontorasb2754 2 роки тому

    Привет!
    У тебя нет канала на рутубе или дзене?

    • @alex_dudukalo
      @alex_dudukalo  2 роки тому

      Приветствую, пока не доходят руки до других платформ :)

  • @dronza_79
    @dronza_79 Рік тому

    не знаю, что тут такого отличного О_о. Например для меня, как инвалида по слуху, данное видео пользы вообще не принесло. Спикер экает, бекает, что то себе под нос бубнит. К тому же у спикера дикция далека от идеала, что так же добавляет непонятностей. Зря потраченное время в попытке понять что он рассказывает. да и как бы товарищ похоже не в курсе что есть родной метод для массивов и как не странно называется так же filter

    • @alex_dudukalo
      @alex_dudukalo  Рік тому

      Здравствуйте, Андрей. Подскажите, я вас чем то обидел?

    • @dronza_79
      @dronza_79 Рік тому

      @@alex_dudukalo да, ментор из тебя никакой. Ты поступил как говнюк просто слившись

  • @user-ty5yi9xk4x
    @user-ty5yi9xk4x 2 роки тому

    Вопрос такой - почему у меня
    const fioVal = document.getElementById('inp-fio').value;
    console.log(fioVal); // выдает пустое значение, хотя ввод сделан.
    А
    const fioVal = document.getElementById('inp-fio');
    console.log(fioVal.value); // нормально выдает значение инпута.
    Я думал - почему не работает функция должным образом, а оказывается первый вариант почему-то не работает.
    Как так? Почему у вас работает, а у меня нет?)

    • @alex_dudukalo
      @alex_dudukalo  2 роки тому

      Тут могу только догадываться, ибо не вижу весь код и файлы. Подозреваю, что id указан не так, как в html файле. Но это только вариант. Должно работать нормально. Нужно смотреть файлы )

  • @marshmallow6526
    @marshmallow6526 Рік тому

    ошибки у тебя конечно детские

    • @alex_dudukalo
      @alex_dudukalo  Рік тому

      Подскажите , что именно вы имеете ввиду ?

    • @marshmallow6526
      @marshmallow6526 Рік тому

      @@alex_dudukalo передача свойств в функцию

  • @matviyantipin1225
    @matviyantipin1225 2 роки тому +1

    function filter(arr, prop, value) {
    let result = [],
    copy = [...arr];
    for (const item of copy) {
    if (String(item[prop]).includes(value) == true) result.push(item);
    }
    return result;
    }
    function render(arr) {
    const list = document.querySelector('.users-list');
    list.innerHTML = '';
    const fioVal = document.getElementById('inp-fio');
    const ageVal = document.getElementById('inp-age');
    let newArr = [...arr]
    console.log(newArr) // Выводит полный скопированый массив
    if (fioVal !== '') newArr = filter(newArr, 'fio', fioVal)
    if (ageVal !== '') newArr = filter(newArr, 'age', ageVal)
    console.log(newArr) // Выводит пустой массив
    for (const user of newArr) {
    const li = document.createElement('li');
    li.textContent = user.fio + ', Age: ' + user.age
    list.aconsole.log(newArr)ppend(li);
    }

    };
    document.getElementById('filter-form').addEventListener('submit', function (event) {
    event.preventDefault();
    render(users);
    console.log('submit');
    })
    render(users);
    В итоге у меня на странице пустой список. В чем дело, не понимаю... Подскажите пожалуйста

    • @alex_dudukalo
      @alex_dudukalo  2 роки тому

      Здравствуйте, выгрузите пожалуйста работу в облако и вышлите ссылку, я посмотрю :)