Pesquisa de site

javascript - Verificar se o objeto contém string em TypeScript


No meu TypeScript eu tenho esta classe:

export class PhoneBookPerson {
    Email: string;
    Name: string;
    Phonenumber: string;
    ProfileImg: string;
    Department: string;
    JobTitle: string;
    Username: string;
}

Estou me perguntando como posso verificar se alguma das propriedades contém um valor específico.

let $SearchTerm = target.val();
function RetrievedUsers(sender: any, args: any) {
    for (let i = 0; i < users.get_count(); i++) {
        let user = users.getItemAtIndex(i);

        let person = new PhoneBookPerson();
        person.Name = user.get_loginName();
        person.Email = user.get_email();
        person.Username = user.get_loginName();
        person.JobTitle = user.get_title();
        <-- search of person contains value from $SearchTerm                        
        usermatch.push(person);
    }
}

Resposta #1

Itere sobre as propriedades do objeto e verifique se alguma delas contém o texto especificado.

Função de exemplo para fazer isso (eu assumo apenas propriedades de string no objeto)

function objectContains(obj, term: string): boolean {
  for (let key in obj){
    if (obj[key].indexOf(term) != -1) return true;
  }
  return false;
}

Exemplo de uso

if (objectContains(person, $SearchTerm)) {
  // do something
}