p это один из постов массива posts, а post это аргумент, который ты передаешь а функцию.
Да, но обрати внимание, что аргумент post по итогу ссылается на тот же массив posts.
Почитай как работает фильтр. Если после прочтения будут вопрсы, напиши сюда. https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Array/filter
Окей, спасибо.
Ну ты в функцию передашь post, потом ищешь его в массиве, если в массиве у элемента p его Id равно Id post который ты передал, то тогда удаляешь. А если его нет, то и удалять нечего
Потому что: [1, 2, 3].filter(i => i !== 2) // [1, 3]
То есть, при нажатии на кнопку в определенном посте, берется айди этого поста и сравнивается с элементом массива posts?
Yep
А вообще лучше сразу id передавать в функцию, а не весь объект post
Но непонятна логика сравнения элемента массива с определенным постом. Почему !==, а не ===?
Потому что у тебя посты рендерятся из массива, чтобы удалить пост, надо удалить его из массива. Если сделаешь !== то он вернёт тебе все элементы, кроме конкретного поста и удалит все, кроме тех которых нажал, условно
АААААААА, ПОНЯЛ))
Грубо говоря, мы кликаем на пост, и фильтруем в новый массив все элементы из массива, кроме выбранного поста(поста, на который мы кликнули)?
Нет. Фильтр возвращает тебе новый массив, в зависимости как ты отфильтровал. Ты нажал на пост, получил айди, передал в функцию, через фильтр получил массив с нужными постом, потом удалил его от туда. Вообще лучше тогда использовать indexOf, проще удалять будет
Обсуждают сегодня