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 = [];
这将使您能够访问数组方法
我看到这个问题被问了很多,但我还没能解决,所以就这样吧! 我正在做一个显示订单列表的项目。我希望能够按日期过滤订单。因此,我试图将每个过滤后的订单推送到一个新数组中,但这给了我以下错误:
"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 = [];
这将使您能够访问数组方法