У меня есть объект, как, например:Создать новый массив из свойств
export var PROJECT: any = {
id: "1",
name: "Hunkemoller",
teammembers: [
{
id: 1,
name: "Sarah Johnson",
firstname: "Sarah",
role: "Manager"
},
{
id: 2,
name: "Christian Johnson",
firstname: "Christian",
role: "Employee"
}
т.д.
Я делаю приложение, и я хочу, чтобы добавить элемент поиска в нем, так что вы можете искать для разных членов команды. Я хочу инициализировать все имена свойств «из каждого члена команды». Это единственное, что нужно фильтровать.
Я думал о 2-мя способами:
- Создать новый массив только с именами проекта> teammembers в нем.
- Просто инициализируйте имена. Но мне это не удалось.
Можете ли вы помочь мне сделать правильный выбор и объяснить мне, как я могу добиться успеха? Я даже не знаю, как сделать новый массив из существующего. Я думал, что-то вроде этого:
var teamMembers = project.teammembers.name();
Но кроме этого варианта, было бы лучше, если бы я мог просто использовать свойство имени из объекта.
я был далеко (я использую Ионные 2/Угловое 2)
<ion-searchbar (ionInput)="getTeammembers($event)" [(ngModel)]="searchQuery"></ion-searchbar>
<ion-list>
<ion-item *ngFor="let teammember of project.teammembers">
{{ teammember.name }}
</ion-item>
</ion-list>
В моем файле транскрипта я следующее:
initializeTeammembers() {
this.project.teammembers;
}
getTeammembers(ev) {
// reset teammembers back to all of the teammembers
this.initializeTeammembers();
// set val to the value of the searcbar
let val = ev.target.value;
// if the value is empty string, don't filter teammembers
if (val && val.trim() != '') {
this.project.teammembers.name = this.project.teammembers.name.filter((teammember) => {
return (teammember.toLowerCase().indexOf(val.toLowerCase()) > -1);
})
}
}
Но это не работает. Я получаю сообщение об ошибке: Не могу прочитать свойство 'filter' undefined.
Есть ли кто-нибудь, кто может мне помочь? Заранее спасибо.
Спасибо за быстрый ответ. Хорошо сейчас, как создать новый массив :-) Я попробую это скоро, но сначала я хочу попробовать его, не создавая новый массив. –
@ Ответ Thalaivar должен решить вашу проблему. Вы фильтровали неправильный элемент. Он фильтрует правильный элемент (члены команды). –