我试图改变角度数据表中的过滤逻辑
export class FilterPipe implements PipeTransform { keys = []; transform(items: any, args: string): any { console.log('Datatable test'); if (items != null && items.length > 0) { let ans = []; if (this.keys.length == 0) { this.keys = Object.keys(items[0]); } for (let i of items) { for (let k of this.keys) { if (String(i[k]).toLowerCase().indexOf(args.toLowerCase()) >= 0) { ans.push(i); break; } } } return ans; } } }
有人请给它点光吗?
你缺少一个 else
else
此外,您可以简化全文搜索,如下所示:
export class FilterPipe implements PipeTransform { transform(items: Object[], args: string): any { console.log('Datatable test'); if (!items || !items.length) { return []; } return items .filter(item => Object.keys(item) .some(key => item[key].toLowerCase().includes(args.toLowerCase())) ); } }