Vou tentar resumir o código aqui pra ver se fica melhor. Na verdade não é um inteiro que ele vai receber como parâmetro, é uma string.
É mais ou menos isso:
component.ts:
export class nomeDaClasse implements OnInit {
vetor: Array<any> = new Array();
constructor(private http: HttpClient) { }
ngOnInit() {
this.exibir().subscribe(listar =>{
this.vetor= listar;
}, err => {
console.log('Erro', err);
})
}
exibir() : Observable<any>{
return this.http.get("Url para o json");
}
funcao(nome: string){
console.log(nome);
}
}
Supondo que o json tem esse formato:
[
{
"nome":"Maria",
"idade":30
},
{
"nome":"João",
"idade":35
},
{
"nome":"José",
"idade":60
}
]
no html.componente
<!-- Exibindo o json -->
<div>
<table class="table">
<thead>
<th>Nome</th>
<th>Idade</th>
</thead>
<tbody>
<tr *ngFor="let c of vetor">
<th>{{c.nome}}</th>
<th>{{c.idade}}</th>
</tr>
</tbody>
</table>
</div>
<!-- Chamando a função -->
<tr *ngFor="let c of vetor">
<th>{{funcao(c.nome)}}</th>
</tr>
Então, pelo meu raciocínio, a função deveria estar sendo chamada apenas 3 vezes, mas ela se repete várias vezes, então acredito que essa não seja a melhor maneira de se chamar a função.