我实现了具有自动完成功能的输入字段,该字段使用物料自动完成功能。 现在我有一个问题,如何在打字稿中过滤对象数组。
此对象数组包含键和值。
html看起来像这样:
<input matInput type="text" [formControl]="locationField" [(ngModel)]="node.field" [name]="node.id"
[matAutocomplete]="auto" placeholder="Field"/>
<mat-autocomplete #auto="matAutocomplete">
<mat-option *ngFor="let field of fields" [value]="field.key">
{{field.value}}
</mat-option>
</mat-autocomplete>
现在,如果我在输入字段中输入新值,则需要一个方法来创建新的mat-option。
过滤器功能如下:
private filterField(value: string): string[] {
const allFields = this.locationFilterFields;
if (value) {
this.locationFieldResults = ArrayObject.filter((result) => {
return searchFieldResult.indexOf(value) !== -1;
});
}
}
任何解决方案?
答案 0 :(得分:1)
由于我不知道您拥有的值的类型,但这是过滤对象数组的方法:-
var friends= [
{name: "rachel", drink: "latte"},
{name: "joey", drink: "latte"},
{name: "phoebe", drink: "tea"},
{name: "chandler", drink: "tea"}
];
var newFriends= heroes.filter(function(hero) {
return friends.drink== "latte";
});
答案 1 :(得分:0)
Object.keys(array_object).filter(key => typeof array_object[key as any] === "number").forEach((tempobjentry)=> {
// inspect tempobjentry
});
以上代码段过滤键类型为数字的array_object条目,并且forEach有助于枚举已过滤的条目。您可以替换条件以适合您的要求。希望这可以帮助。另请参阅How do I filter an array with TypeScript in Angular 2?以获得更详细的说明。