JavaScript - 将对象推入数组失败

JavaScript - Pushing Objects into Array failed

我看到这个问题被问了很多,但我还没能解决,所以就这样吧! 我正在做一个显示订单列表的项目。我希望能够按日期过滤订单。因此,我试图将每个过滤后的订单推送到一个新数组中,但这给了我以下错误:

"TypeError: filteredOrders.push is not a function"

我曾尝试调整我的推送语法,因为我认为我做错了但无济于事。 每个订单都作为对象返回。我如何将这些对象推入数组?我正在循环的订单数组也是一个对象数组。这是我的代码以获得更清晰的示例:

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;
    },

控制台截图:

Array 是函数,不是空数组。这条线

let filteredOrders = Array;

不会创建空数组。它将函数 Array 分配给 filteredOrders。你可能想要

let filteredOrders = [];

这里的作业:

let filteredOrders = Array;

只是一个函数类型,没有生成构造函数。 相反,您可以尝试这样做

let filteredOrders = new Array(); 
or 
let filteredOrders = [];

这将使您能够访问数组方法