2017-01-23 60 views
1

我想過濾打字稿和aurelia中的數組,但是我只有空列表。返回空列表的打字稿過濾器

如果我有關鍵字ra和搜索firstName屬性,我希望有第一個對象(名稱爲「Raja」)返回。我不明白我失蹤了什麼?

下面是一組contact對象。

let contacts = [ 
    { 
    id:getId(), 
    firstName:"Raja", 
    lastName:"Mani", 
    email:"[email protected]", 
    phoneNumber:"408-973-5050", 
    birthDate: new Date(1973, 5, 1) 
    }, 
    { 
    id:getId(), 
    firstName:"Jhansi", 
    lastName:"Rani", 
    email:"[email protected]", 
    phoneNumber:"867-5309", 
    birthDate: new Date(1970, 5, 24) 
    }, 
    { 
    id:getId(), 
    firstName:"Aditi", 
    lastName:"Raja", 
    email:"[email protected]", 
    phoneNumber:"408-973-9006", 
    birthDate: new Date(2001, 10, 12) 
    }   
]; 

這些對象是有接口IContact接口

export interface IContact { 
    id: number; 
    firstName: string; 
    lastName: string; 
    email: string; 
    phoneNumber: string; 
    birthDate: Date; 
} 

這是我的篩選查詢

let results = contacts.filter((c: IContact) => ((c.firstName.indexOf(keyword) !== -1))); 
+2

i ndexOf區分大小寫:「Raja」.indexOf('ra')=== -1 /「Raja」.indexOf('Ra')=== 0 – rogeriolino

+0

這與angularjs有什麼關係? – Claies

回答

4

由於indexOf是大小寫敏感的,你需要在比較之前變換兩種情況:

c.firstName.toUpperCase().indexOf(keyword.toUpperCase()) !== -1