我试图在forEach上下文中调用外部变量。因为我使用的是箭头表示法,所以这应该是诀窍,但变量仍然是未定义的。
这是我的代码:
transformSlots (slots) {
var array = slots;
var newArray;
array.forEach(element => {
var newElement = {
day: dateFns.getDate(element.slot),
month: dateFns.getMonth(element.slot),
year: dateFns.getYear(element.slot),
hour: dateFns.getHours(element.slot),
numInterview: element.num,
id_users_pending: 0,
id_users_accepted: 0
};
this.newArray.push(newElement);
});
return array;
}
编辑:如果我拿走。这个结果是完全一样的。
删除this
。它将使代码在回调中查找newarray,而不是在循环之外
transformSlots (slots) {
var array = slots;
var newArray;
array.forEach(element => {
var newElement = {
day: dateFns.getDate(element.slot),
month: dateFns.getMonth(element.slot),
year: dateFns.getYear(element.slot),
hour: dateFns.getHours(element.slot),
numInterview: element.num,
id_users_pending: 0,
id_users_accepted: 0
};
newArray.push(newElement);
});
return array;
}
你应该使用newArray.push(newElement);
而不是this.newArray.push(newElement);
。
如果你在this
循环中打印forEach
,你会发现newArray
不会与this
绑定。