Честно говоря, я не старший разработчик, но я хочу поделиться вещами, которые я изучаю. Надеюсь, это может быть полезно.
Если вы ищете ответ для этого вопроса «Как я могу фильтровать массив в angular », этот пост может вам помочь. Я собираюсь ответить примером:
У вас есть множество автомобилей:
cars: ICar[] = [
{
'carId': 1,
'carName': 'Toyota',
'carCode': 'CAR-0023',
'releaseDate': 'March 18, 2019',
'description': 'this is a description',
'price': 35000,
'starRating': 4.2,
'imageUrl': 'https://images.unsplash.com/photo-1525609004556-c46c7d6cf023?ixid=MnwxMjA3fDB8MHxzZWFyY2h8M3x8Y2Fyc3xlbnwwfHwwfHw%3D&ixlib=rb-1.2.1&w=1000&q=80'
},
{
'carId': 2,
'carName': 'Bugatti test',
'carCode': 'CAR-1123',
'releaseDate': 'March 18, 2020',
'description': 'this is a description 2',
'price': 48000,
'starRating': 3.2,
'imageUrl': 'https://stat.overdrive.in/wp-content/odgallery/2020/06/57263_2020_Mercedes_Benz_GLS.jpg'
},
{
'carId': 3,
'carName': 'BMW test 2',
'carCode': 'CAR-0030',
'releaseDate': 'March 18, 2018',
'description': 'this is a description 3',
'price': 80000,
'starRating': 5,
'imageUrl': 'https://www.focus2move.com/wp-content/uploads/2021/02/Bugatti-Divo_Lady_Bug-2020-1024-0b.jpg'
},
{
'carId': 4,
'carName': 'Benz',
'carCode': 'CAR-0190',
'releaseDate': 'March 18, 2021',
'description': 'A description',
'price': 50000,
'starRating': 4.5,
'imageUrl': 'https://cdn.motor1.com/images/mgl/8e8Mo/s1/most-expensive-new-cars-ever.webp'
}
]
Я знаю, что изображения не подходят с названием автомобиля.:)
Это в файле TS. Например, cars.component.ts
Теперь мы можем взглянуть на HTML -файл:
{{title }}Filter By:Filtered by
Car Name Car Code Release Date Price 5 Star Rating ![]()
{{car.carName}} {{car.carCode}} {{car.releaseDate}} {{car.price}} {{car.starRating}}
Как вы видите, у нас есть вход, где пользователь может написать имя автомобиля, которое он/он хочет отфильтровать. Итак, здесь нам нужно, чтобы получить слово и передавать его в компонент, и для входных изменений и вызов функции, которую я назвал его фильтр()
filter(){
if(this.filterTerm){
this.filteredCars = this.cars.filter(car => car.carName.toLowerCase().includes(this.filterTerm.toLowerCase()))
} else {
this.filteredCars = this.cars
}
}
Это переменные, которые мы должны объявить их в нашем файле TS. Фильтр термина – это такая строка, как фильтр «Toyota»:;
и FilteredCars – это массивы с типом ICAR. FilteredCars: ICAR [] = []
** ICAR – это интерфейс, который я создал для автомобилей:
export interface ICar {
carId : number;
carName : string;
carCode : string;
releaseDate : string;
description : string;
price : number;
starRating : number;
imageUrl : string;
}
Вы можете создать этот файл в папке, которую вы создали для автомобильных файлов. У меня это в папке Cars (компонент моих автомобилей)
Оригинал: “https://dev.to/tizhad/filter-in-angular-with-code-example-18g1”