вам нужна помощь, у меня есть этот массив в файле "server" js, а с сервисом хранится в allplayers = []; Я хочу отфильтровать массив так, чтобы оставались только джазовые игроки (в players = [];) использовали код ниже. есть идея, почему это не работает? Спасибо
var players = [
{team: 'bulls', fullName: 'Kerr', position: 'SG', ranking: '7', id: '1' },
{team: 'jazz',fullName: 'stockton', position: 'PG', ranking: '9', id: '2'},
{team: 'jazz',fullName: 'malone', position: 'PF', ranking: '8', id: '3'}
];
export class PlayersComponent implements OnInit {
players = [];
allplayers = [];
bullsPlayers = [];
constructor(private _playerService: PlayerService) {}
filterjazzplayers(){
for (let i = 0; i < this.allplayers.length; i++) {
if (this.allplayers[i].team == 'jazz') {
this.players.push(this.allplayers[i]);
}
}
}
ngOnInit (){
this._playerService.getPlayers()
.subscribe(
allplayers => this.allplayers = allplayers,
error => console.log(<any>error)
);
this.filterjazzplayers();
}
Я мог ошибаться, но я думаю, что проблема может возникнуть, когда вы создаете новые массивы с тем же именем. Возможно, он не сможет определить разницу между массивом локальных игроков и массивом стартовых игроков. Следующий код отлично работает как простой javascript в html файле. Надеюсь, это поможет вам найти, где у вас проблемы.
<!DOCTYPE html>
<html>
<script>
var players = [
{team: 'bulls', fullName: 'Kerr', position: 'SG', ranking: '7', id: '1' },
{team: 'jazz',fullName: 'stockton', position: 'PG', ranking: '9', id: '2'},
{team: 'jazz',fullName: 'malone', position: 'PF', ranking: '8', id: '3'}
];
var newPlayers = [];
function filterJazzPlayers()
{
for(let i = 0; i < players.length; i++)
{
if(players[i].team == 'jazz')
{
newPlayers.push(players[i]);
}
}
}
filterJazzPlayers();
for(var j = 0; j < newPlayers.length; j++)
{
console.log(newPlayers[j].fullName);
}
</script>
<html>