Ich versuche, ein Array innerhalb eines Objekts basierend auf einer Zeichenfolge mit zwei Filtermethoden zu filtern. So sieht mein Objekt aus.Filter-Array innerhalb des Objekts mit Autocomplete
[
{
"cat": "Accommodation and Food Service Activities",
"value": [
{
"sic": "55",
"desc": "Accommodation"
},
{
"sic": "56",
"desc": "Food and beverage service activities"
}
]
},
{
"cat": "Activities Of Extraterritorial Organisations and Bodies",
"value": [
{
"sic": "99",
"desc": "Activities of extraterritorial organisations and bodies"
}
]
}
]
ich auf dem value.desc
zu filtern versuche und geben die cat
Hier ist, was ich bisher
filteredIndustries(industry: string) {
if (industry) {
return this.industries.filter(sector => {
if (sector.value) {
sector.value.findIndex(v => {
return v.desc.toString().toLowerCase().indexOf(industry.toString().toLowerCase()) === 0;
});
}
});
} else {
return this.industries;
}
und hier ist mein html,
<md-input-container>
<input mdInput placeholder="Industry" [mdAutocomplete]="auto" [formControl]="industryCtrl">
</md-input-container>
<md-autocomplete #auto="mdAutocomplete" [displayWith]="displayIndustry.bind(this)">
<md-option *ngFor="let industry of filteredIndustry | async" [value]="industry">
{{ industry.cat }}
</md-option>
</md-autocomplete>
Also wenn ich Essen betrete, sollte es auf value.desc
filtern undzurückgebendie Accommodation and Food Service Activities
sein sollte
Aber ich bekomme keinen Rückgabewert, obwohl mein Rückgabeergebnis wahr ist.
Jede Hilfe würde sehr geschätzt werden.
Willkommen bei SO! Das ist eine gute erste Frage, du hast deinen Code gepostet und dein Problem richtig erklärt, um dir zu helfen. +1 –