2017-01-23 4 views
1

Ich versuche, ein Array in Typoskript und Aurelia zu filtern, aber ich bekomme immer nur leere Listen.Typescript Filter leere Liste zurückgeben

Wenn ich das Schlüsselwort von ra habe und auf der firstName Eigenschaft suche, erwarte ich, dass das erste Objekt (mit Namen von "Raja") zurückgegeben wird. Ich verstehe nicht, was ich vermisse?

Unten ist eine Reihe von contact Objekte.

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) 
    }   
]; 

Diese Objekte haben, sind die Schnittstelle IContact

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

Und das ist meine Filterabfrage

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

i ndexOf unterscheidet Groß- und Kleinschreibung: "Raja" .IndexOf ('ra') === -1/"Raja" .IndexOf ('Ra') === 0 – rogeriolino

+0

was hat das mit angularjs zu tun? – Claies

Antwort

4

Wie indexOf Groß- und Kleinschreibung Sie beide Fall transformieren müssen vor dem Vergleich:

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