微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

JavaScript - 将对象推入数组失败

如何解决JavaScript - 将对象推入数组失败

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

“类型错误: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;
    },

控制台截图:

enter image description here

解决方法

Array 是一个函数,而不是一个空数组。这一行

let filteredOrders = Array;

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

let filteredOrders = [];
,

这里的任务:

let filteredOrders = Array;

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

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

这将使您可以访问数组方法

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?