2017-01-23 12 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 

 Смежные вопросы

  • Нет связанных вопросов^_^