Только пятница
Часто нужны не все элементы массива, а только некоторые: группы пятницы, группы на главной сцене, рок-группы. Метод filter() вы знаете из курса JavaScript: он собирает новый массив из элементов, для которых его функция вернула true. Сначала отфильтруйте, а потом примените map() к тому, что осталось:
export default function App() {
const mainStage = bands.filter((band) => band.stage === "Главная сцена");
return (
<section>
<h2>Главная сцена</h2>
{mainStage.map((band) => (
<BandCard key={band.id} band={band} />
))}
</section>
);
}Фильтруйте в компоненте перед return, где можно писать любой JavaScript, и сохраняйте результат в константу, имя которой говорит, что в ней лежит. Можно соединить два метода прямо в JSX, {bands.filter(…).map(…)}, но с именем код читать легче.
filter() не меняет исходный массив, поэтому один и тот же bands можно фильтровать на странице по-разному: по сценам, по дням. Каждый filter() создаёт свой массив.
Типичная ошибка — одиночный = в условии. (band) => band.day = "Пятница" не сравнивает, а присваивает: функция меняет день у каждой группы на пятницу и возвращает текст "Пятница", который считается истиной. В итоге показываются все группы, и все в пятницу.
Задание
- 1
Под заголовком
Пятницапокажите только группы пятницы: передreturnотфильтруйте их в константуfridayBandsи покажите группы из этой константы. - 2
Добавьте вторую
sectionс заголовкомСубботаи группами субботы.