如何解决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;
},
解决方法
Array
是一个函数,而不是一个空数组。这一行
let filteredOrders = Array;
不会创建空数组。它将函数 Array
分配给 filteredOrders
。你可能想要
let filteredOrders = [];
,
这里的任务:
let filteredOrders = Array;
只是一个函数的类型,没有生成构造函数。 相反,您可以尝试这样做
let filteredOrders = new Array();
or
let filteredOrders = [];
这将使您可以访问数组方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。