Фильтровать объекты из массива объектов на основе свойств [дубликата]

1

вам нужна помощь, у меня есть этот массив в файле "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();
  }
  • 0
    На каком языке это?
  • 1
    JavaScript. Используя Angular.
Показать ещё 1 комментарий
Теги:
angular
object
filter
properties

1 ответ

0

Я мог ошибаться, но я думаю, что проблема может возникнуть, когда вы создаете новые массивы с тем же именем. Возможно, он не сможет определить разницу между массивом локальных игроков и массивом стартовых игроков. Следующий код отлично работает как простой 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>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню