尝试推入数组时未定义数组
Array is undefined when trying to push into it
我正在尝试将模型中的一些值推入数组。
public model: WeekDays[];
WeekDays 是这种类型的枚举
export enum WeekDays {
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday,
}
所以我有一个保存功能,它应该执行以下操作:
public save(){
this.model.forEach(function (value){
this.arr.push(WeekDays[value]);
})
}
我想获取模型的每个元素并添加天数。
例如,如果我在模型中有星期一和星期二,当执行
console.log(WeekDays[value])
输出是
0
1
我想将这些值添加到数组中,但出现“无法读取未定义的属性(读取 'arr')”错误。
数组定义为
arr = Array(7);
我做错了什么?
您需要使用 =>
来声明您的 forEach
回调。
用 =>
声明的函数从它们创建的范围中捕获 this
的值。function
没有。所以 this
并不是你想的那样。它很可能是全局对象,而不是您的 class 实例。
试试这个:
this.model.forEach((value) => {
this.arr.push(WeekDays[value]);
})
我正在尝试将模型中的一些值推入数组。
public model: WeekDays[];
WeekDays 是这种类型的枚举
export enum WeekDays {
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday,
}
所以我有一个保存功能,它应该执行以下操作:
public save(){
this.model.forEach(function (value){
this.arr.push(WeekDays[value]);
})
}
我想获取模型的每个元素并添加天数。 例如,如果我在模型中有星期一和星期二,当执行
console.log(WeekDays[value])
输出是
0
1
我想将这些值添加到数组中,但出现“无法读取未定义的属性(读取 'arr')”错误。
数组定义为
arr = Array(7);
我做错了什么?
您需要使用 =>
来声明您的 forEach
回调。
用 =>
声明的函数从它们创建的范围中捕获 this
的值。function
没有。所以 this
并不是你想的那样。它很可能是全局对象,而不是您的 class 实例。
试试这个:
this.model.forEach((value) => {
this.arr.push(WeekDays[value]);
})