Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Gerando um array com apenas os passageiros médicos

Caso alguém, assim como eu, tenha ficado na dúvida em como listar apenas os passageiros que sejam médicos, aqui vai a minha solução:

class Passageiro {
  constructor(nome, profissao) {
    this.nome = nome;
    this.profissao = profissao;
  }
}

let passageiros = [];

passageiros.push(new Passageiro(`Orlando`, `Dentista`));
passageiros.push(new Passageiro('Suzada', 'Advogada'));
passageiros.push(new Passageiro('Hélio', 'Médico'));
passageiros.push(new Passageiro('Salen', 'Programador'));
passageiros.push(new Passageiro('Francisca', 'Médica'));

let profissoesFilter = passageiros.filter(passageiro => {
  return passageiro.profissao === 'Médica' || passageiro.profissao === 'Médico';
});

console.log(profissoesFilter);

filter-passageiros.jpg

Aceito dicas para melhorar este código =)

2 respostas
solução!

Fala Roger, tudo bem ?

Mandou bem! Parabéns pela solução e pela iniciativa de compartilhar com a galera.

Não vejo muitos pontos de melhoria pra ser sincero. Só alguns pequenos ajustes .

Eu usaria uma const ao invés de let para a variável pra garantir que em nenhuma outra linha futura (caso o código cresça) seja possível trocar a referência armazenada para outro array que não seja o retornado pelo filter.

const filteredPassengers = passageiros.filter(passageiro => {
  // condição do filter
});

E tentaria definir um padrão para a String que define a profissão pra facilitar a implementação do filter (evitar ter que fazer o or só para o gênero). Uma alternativa seria tentar usar algum método utilitário da string JavaScript para isso também -passageiro.profissao.startsWith('Médic') ou includes('Médic') teria o mesmo efeito. (mas acho que ainda ficaria com a padronização da String)

Acho que é isso, nada muito crítico. Sua solução já está mais que satisfatória.

Abraço e bons estudos.

Valeu, Rafael!