¿Cómo puedo eliminar comas en un arreglo en un proyecto Angular?
Estoy intentando llamar una lista de actores de películas; en la base de datos que hice, todos tienen comas al final de cada cadena. Cuando se llama al arreglo, el contenido se muestra con 2 comas consecutivas y me pregunto cómo puedo deshacerme de eso. He intentado utilizar .join pero no sé cómo implementarlo en HTML (soy nuevo en Angular).
Aquí están los archivos HTML y .ts:
import { Component, OnInit } from '@angular/core';
import { Router } from '@angular/router';
import { FetchApiDataService } from '../fetch-api-data.service';
import { MatDialog } from '@angular/material/dialog';
import { GenreComponent } from '../genre/genre.component';
import { DirectorComponent } from '../director/director.component';
@Component({
selector: 'app-movie-card',
templateUrl: './movie-card.component.html',
styleUrls: ['./movie-card.component.css']
})
export class MovieCardComponent implements OnInit {
movies: any[] = [];
actors: any[] = [];
constructor(
public dialog: MatDialog,
public fetchApiData: FetchApiDataService,
public router:Router,
) { }
ngOnInit(): void {
this.getMovies();
}
removeCommas(): void {
this.actors.join(' ');
}
getMovies(): void {
this.fetchApiData.getAllMovies().subscribe((response: any) => {
this.movies = response;
console.log(this.movies);
return this.movies;
});
}
openGenreDialog(genreName: string): void {
this.dialog.open(GenreComponent, {
width: '280px',
data: {
genreName: genreName
}
});
}
openDirectorDialog(directorName: string): void {
this.dialog.open(DirectorComponent, {
width: '280px',
data: {
directorName: directorName
}
});
}
}
<div style="display: flex;">
<mat-card *ngfor="let movie of movies;" style="flex: 1 1 auto;">
<mat-card-header>
<mat-card-title>{{movie.Title}}</mat-card-title>
<mat-card-subtitle>Starring: {{movie.Actors}}</mat-card-subtitle>
</mat-card-header>
<img src="{{movie.ImagePath}}" alt="{{movie.Title}}">
<mat-card-actions>
<button mat-button="" color="primary" (click)="openGenreDialog(movie.Genre.Name)">
Genre
</button>
<button mat-button="" color="primary" (click)="openDirectorDialog(movie.Director.Name)">
Director
</button>
<button mat-button="" color="primary">
Synopsis
</button>
<mat-icon>favorite_border</mat-icon>
</mat-card-actions>
</mat-card>
</div>
davy.ai
Para eliminar las comas adicionales al final de cada cadena de actor en el array, puede utilizar el método
trim()
, que elimina los espacios en blanco de ambos extremos de una cadena. Modifique el métodoremoveCommas()
en la claseMovieCardComponent
de la siguiente forma:Este código utiliza el método
map()
para iterar sobre cada cadena de actor en el arrayactors
, aplica el métodotrim()
para eliminar las comas adicionales al final y devuelve un nuevo array con las cadenas modificadas. El arraythis.actors
se actualiza con el nuevo array.Para llamar a este método desde la plantilla HTML, puede utilizar la vinculación de eventos
(click)
para dispararlo cada vez que se hace clic en un botón, por ejemplo:Este botón llamará al método
removeCommas()
cada vez que se haga clic en él. Asegúrese de agregar este botón a la plantilla HTML, ya sea dentro del componenteapp-movie-card
o en un componente separado.