Я пытаюсь отфильтровать вывод, но одно поле в массиве является массивом.
Когда я отфильтрую все - я получу все.
Если я фильтрую для любого подмножества, console.log (items [i] .tags) выводит в массиве foramat ["Skills", "Learning"]
.
Второй console.log отображает элемент в массиве (с обоими тегами)
При возврате выдается ошибка:
ERROR Error: Cannot find a differ supporting object '[object Object]' of type 'object'. NgFor only supports binding to Iterables such as Arrays.
at NgForOf.push../node_modules/@angular/common/fesm5/common.js.NgForOf.ngDoCheck
... в HTML:
<span *ngFor="let page of page | tags: tag ; #nGForArray>
... Массив страниц
[ {
"id" : "1",
"title" : "Security",
"tags" : ["Skills", "Learning"]
},
{
"id" : "2",
"title" : "Home Improvement",
"tags" : ["Skills"]
},
{
"id" : "3",
"title" : "Mathematics",
"tags" : [""Learning"]
}
]
... в search.pipe.ts
export class TagPipe implements PipeTransform {
transform(items: any[], tag: string): any {
if (!items || !tag) {
return items;
}
var filtertags: any[];
for (let i = 0; i < items.length; i++) {
console.log(items[i].tags);
for (let j = 0; j < items[i].tags.length; i++) {
if (tag == items[i].tags[j]) {
console.log(items[i]);
return items[i];
}
}
}
console.log("end of transform");
console.log(filtertags);
return filtertags;
}
}
Мне нужны результаты, чтобы найти любую запись, в которой один из тегов соответствует фильтру.