Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript开关始终为默认值_Javascript_Loops_Switch Statement_Default - Fatal编程技术网

Javascript开关始终为默认值

Javascript开关始终为默认值,javascript,loops,switch-statement,default,Javascript,Loops,Switch Statement,Default,我正在使用一个开关,该开关根据如下值设置2个变量: switch(_drukte) { case "normaal": _gradients.push("green"); _widths.push("20%"); break; case "drukker": _gradients.push("yellow"); _widths.push("40%"); break; case "gezel

我正在使用一个开关,该开关根据如下值设置2个变量:

switch(_drukte) {
    case "normaal": 
        _gradients.push("green");
        _widths.push("20%");
    break;
    case "drukker": 
        _gradients.push("yellow");
        _widths.push("40%");
    break;
    case "gezellig druk": 
        _gradients.push("orange");
        _widths.push("60%");
    break;
    case "druk": 
        _gradients.push("red");
        _widths.push("80%");
    break;
    case "vol": 
        _gradients.push("full");
        _widths.push("100%");
    break;
    default:
        _gradients.push("green");
        _widths.push("20%");
    break;
}
出于某种原因,这总是调用默认值。 _drukte来自JSON文件上的AJAX get,值随循环而变化。 我已经提醒了_drukte的值,它和预期的一样(目前是“normal”、“drukker”、“gezellig druk”、“druk”和“vol”)。 我试图搞乱其他情况(甚至使其成为无效javascript),它只是调用默认值


有人知道为什么吗?

我不想探出窗外太远,但我几乎可以向您保证,ajax请求的返回值不能100%满足您的
案例

如果我是你,我会直接
console.log(_drukte)在该
开关
语句之前

也许是空白?大写字母


这是我在没有看到实际代码的情况下所能提供的最佳答案,因此,当遇到
开关语句时,请尝试找出
\u drukte
包含的确切值。

您能设置一个JSFIDLE吗?以
\u drukte
的实际值为例显示。并在switch语句之前执行
console.log(_drukte)
,很可能ajax有问题。首先将u梯度定义为哈希表,然后尝试运行代码..FWIW@AdrianoVaroliPiazza,_梯度在代码中设置得更高,
var_梯度=[]。我不会尝试填充一个不存在的数组。可能是OP提到的循环的作用域问题,或者可能是
开关
不是readystatechange/success callbackconsole.log的一部分。log似乎没有做任何事情。@jAndy不管它是否工作,Fetch出现了问题。当I console.log_drukte时,它会显示5个值:[“normal”][“drukker”][“gezellig druk”][“druk”][“vol”](如控制台中所示)。所以问题是,你得到一个数组,你认为你有一个字符串,这就是为什么它总是默认的原因。但它不是一个数组,因为它在console.log上运行了5次,每次都分配不同的值。