【发布时间】:2021-05-06 16:13:51
【问题描述】:
我看到这个问题被问了很多,但我还没有能够解决它,所以来吧! 我正在做一个显示订单列表的项目。我希望能够按日期过滤订单。因此,我试图将每个过滤后的订单推送到一个新数组中,但这给了我以下错误:
“TypeError:filteredOrders.push 不是函数”
我试图调整我的推送语法,因为我认为我做错了,但无济于事。 每个订单都作为一个对象返回。我怎样才能将这些对象推入一个数组?我循环的订单数组也是一个对象数组。这是我的代码,用于更清晰的示例:
data: function () {
return {
isFilterShown: false,
IsOrderDetailShown: false,
selectedDateFrom: new Date(),
selectedDateTill: new Date(),
}
},
methods: {
applyFilter: function () {
let dateFrom = this.selectedDateFrom;
let dateTill = this.selectedDateTill;
let filteredOrders = Array;
this.orders.forEach(function (order) {
if (order.createdAt >= moment(dateFrom).format('DD-MM-Y') && order.createdAt <= moment(dateTill).format('DD-MM-Y')) {
console.log(order.createdAt, order);
return order;
}
filteredOrders.push(order);
})
// this.orders = this.filteredOrders;
this.isFilterShown = false;
},
【问题讨论】:
-
有道理;你给它一个类型,而不是一个类型的 instance。你可能想要
let filteredOrders = []。 (在这种用法中,这比new Array()更规范。)类似于您正确设置日期的方式——通过创建 instance。
标签: javascript arrays vue.js object array-push