Подскажите, как методом filter отфильтровать элементы с определенным текстом?
Нужно методом filter отфильтровать массив movies так,чтобы в нём остались только фильмы 2018 года.
const movies = [
'Титаник (1997)',
'Чёрная Пантера (2018)',
'Остров Собак (2018)',
'Омерзительная Восьмерка (2015)'
];
const moviesFiltered = movies.filter(function (item) {
как здесь правильно прописать return для текстовых данных?
});
console.log(moviesFiltered);
Ответы (4 шт):
Автор решения: Igor
→ Ссылка
const movies = [
'Титаник (1997)',
'Чёрная Пантера (2018)',
'Остров Собак (2018)',
'Омерзительная Восьмерка (2015)'
];
const moviesFiltered1 = movies.filter(item => item.endsWith("(2018)"));
console.log(moviesFiltered1);
const moviesFiltered2 = movies.filter(function(item) {
return item.endsWith("(2018)");
});
console.log(moviesFiltered2);
Автор решения: OPTIMUS PRIME
→ Ссылка
Подойдет любой метод, находящий / проверяющий подстроки:
const movies = [
'Титаник (1997)',
'Чёрная Пантера (2018)',
'Остров Собак (2018)',
'Омерзительная Восьмерка (2015)'
];
const ex1 = movies.filter( item => /\(2018\)/.test(item) );
const ex2 = movies.filter( item => item.includes("(2018)") );
const ex3 = movies.filter( item => item.indexOf("(2018)") > -1 );
console.log( ex1, ex2, ex3 );
Автор решения: Ivan Didyk
→ Ссылка
Любое кино, имеющее 2018 в скобках.
const movies = [
'Movie (2018)',
'Another movie (year 2018)',
'Not matched movie (2020)',
'Demo (1009)',
'Last one (2018 y.)'
];
const moviesFiltered = movies.filter(i => /.+\(.*2018.*\)/.test(i))
console.log(moviesFiltered);
Автор решения: vla9islove
→ Ссылка
Для фильтрации элементов массива movies и оставления только тех фильмов, которые были выпущены в 2018 году, можно использовать метод filter() в сочетании с методом includes(), который проверяет, содержит ли строка подстроку.
const moviesFiltered = movies.filter(function (item) {
return item.includes('(2018)');
});