开关上无法访问变量

问题描述 投票:0回答:2

变量

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;
                }
javascript reactjs scope switch-statement
2个回答
0
投票

很抱歉劫持了这个线程,但是这个线程出现了我最近遇到的类似错误,并且花了我很长时间才找到问题。

let someVar = 'some text'
switch (true) {
  case true:
    console.log('value of someVar', someVar)
    break
  case false:
    let someVar = 'some other text'
    break
}

-1
投票

我发现了这个问题,这是由于

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;
...
}
© www.soinside.com 2019 - 2024. All rights reserved.