2017-01-25 130 views
0

串在我的TypeScript我有这个类:检查对象包含打字稿

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

我不知道我怎么能检查是否有任何属性包含特定值。

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); 
    } 
} 
+0

哪里是'$ SearchTerm'变量?你想与人的至尊属性匹配什么样的价值? –

+0

'$ SearchTerm包含任何形式的用户输入值.'我想看看Person中的任何属性是否包含该值 –

+0

只需使用Object.keys(person).some(k => k.includes($ SearchTerm )) – AlexG

回答

2

迭代对象属性并检查它们是否包含指定的文本。

样的功能这样做(我假设的对象只字符串属性)

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

用法示例

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