#typescript
Вопрос:
У меня есть этот код здесь:
getMembershipNameString(membership: string[]): any {
const filtered = this.allMemberships.filter((m) => {
return membership.includes(m.name);
});
return filtered;
}
который должен сравнивать строки из одного массива с массивом объектов. Допустим, у меня все так:
['Dog', 'Cat', 'Doggy']
и результат возврата-и Собака, и Собачка, тогда как я хотел бы только вернуть собаку.
Я также пробовал использовать:
getMembershipNameString(membership: string[]): any {
const filtered = this.allMemberships.filter((m) => m.name === membership);
console.log(filtered);
return filtered;
}
что приводит меня к ошибке: это условие всегда будет возвращать «false», так как типы «строка []» и «строка» не имеют перекрытия.ts(2367)
Заранее спасибо!
P.S. мой allMemberships
объект выглядит так: { name: 'name', label: 'label' }
;
Комментарии:
1. Как выглядит ваш объект allMemberships? Ваш второй бит кода не имеет смысла, поскольку он сравнивает строку с массивом строк, поэтому вы получаете ошибку ts.
2. отредактировал мой пост @Alex
3. См.: jsfiddle.net/fezpnchg/1 , который сравнивает массив имен с массивом объектов со свойством name. Он фильтруется, как и ожидалось.