Это, вероятно, довольно плохо, но так как плохо иметь массив строк для манипулирования таким образом вместо массива объектов по мере необходимости, то здесь:
в компоненте, разбить ваш массив наподмассивы длиной 5 и поместите их в новый массив, например так:
ngOnInit(){
for (var i = 1; i <= 25; i++) {
this.foo.push(i);
}
for(let x=0; x<this.foo.length; i+5){
this.bar.push(this.foo.splice(x,x+5));
}
}
Я использовал числовой массив, чтобы показать.В html теперь вы можете игнорировать foo и работать только на bar, например:
<table style="border:1px solid">
<tr *ngFor="let qwe of bar" style="border:1px solid">
<td *ngFor="let asd of qwe" style="border:1px solid"> {{asd}}</td>
</tr>
</table>
Я понимаю, что это не совсем ваш случай, но я думаю, что вы можете выработать свою логику отсюда (возможно,я думаю, вы не можете переключаться с s, поскольку у вас есть определенные ключи для доступа, но все же :))