变量
start
和 end
在另一个开关盒内部不可访问。但应该是。
代码
for (let key in filters) {
let obj = filters[key];
if (!filters.hasOwnProperty(key) || obj === '' || obj.length === 0) {
continue;
}
let start;
let end;
switch (key) {
case "datum_van": {
start = new Date(obj);
break;
}
case "datum_tot": {
end = new Date(obj);
break;
}
case "dateVal": {
filteredRoutes = filteredRoutes.filter(tocht => {
let date = this.parseJsonDate(tocht.datum_van);
switch (obj) {
case 0: return date >= start && date <= end;
case 1: return date >= start;
case 2: return date <= end;
}
});
break;
}
很抱歉劫持了这个线程,但是这个线程出现了我最近遇到的类似错误,并且花了我很长时间才找到问题。
let someVar = 'some text'
switch (true) {
case true:
console.log('value of someVar', someVar)
break
case false:
let someVar = 'some other text'
break
}
我发现了这个问题,这是由于
start
和 end
无法在 case "dateVal"
上访问,通过将我的 let start;
和 let end;
放在 for 循环之外来修复它。
像这样:
let start;
let end;
for (let key in filters) {
...
}
而不是:
for (let key in filters) {
let start;
let end;
...
}