我有一个从 API 获取数据的表,我正在尝试实现日期范围过滤器, 这是我的功能:
getDateRange(value) {
console.log(this.dataSource.data);
// getting date from calendar
const fromDate = formatDate( value.fromDate,'MM/dd/yyyy','en-US');
const toDate = formatDate( value.toDate,'MM/dd/yyyy','en-US');
this.dataSource.data = this.dataSource.data.filter(e => {
formatDate( e.issue_date,'MM/dd/yyyy','en-US') >= fromDate && formatDate( e.issue_date,'MM/dd/yyyy','en-US') <= toDate
console.log(formatDate( e.issue_date,'MM/dd/yyyy','en-US'))
});
console.log(fromDate, toDate);
console.log(this.dataSource.data);
}
在我的控制台中,我以完整数组形式获取之前的所有数据 (console.log(this.dataSource.data);),在过滤器行之后我得到一个空数组,有人知道为什么吗?
答案 0 :(得分:1)
您需要在过滤器函数中返回一个值。
你是否这样做(过滤器中没有括号):
this.dataSource.data = this.dataSource.data.filter(e => (formatDate( e.issue_date,'MM/dd/yyyy','en-US') >= fromDate && formatDate( e.issue_date,'MM/dd/yyyy','en-US') <= toDate))
或(带有明确的“返回”):
this.dataSource.data = this.dataSource.data.filter(e => { return
(formatDate( e.issue_date,'MM/dd/yyyy','en-US') >= fromDate && formatDate( e.issue_date,'MM/dd/yyyy','en-US') <= toDate)});