使用cookie(javascript)时for循环中的If/Elseif语句出现问题

使用cookie(javascript)时for循环中的If/Elseif语句出现问题,javascript,if-statement,for-loop,cookies,Javascript,If Statement,For Loop,Cookies,嗨,在我的javascript游戏中,我使用cookies在游戏开始时加载一些数据 function loadData(){ cookieArray = document.cookie.split(';'); for (var i = 0; i < cookieArray.length; i++){ cookie = cookieArray[i].split('=')[0]; value = cookieArray[i].split('=')[1]; if (c

嗨,在我的javascript游戏中,我使用cookies在游戏开始时加载一些数据

function loadData(){
cookieArray = document.cookie.split(';');
for (var i = 0; i < cookieArray.length; i++){
    cookie = cookieArray[i].split('=')[0];
    value = cookieArray[i].split('=')[1];


    if (cookie=="currentR"){

        round = value;

    }
    else if(cookie=="blueWins"){
        bWins=value

    }
    else if(cookie == "redWins"){
        rWins=value

    }

   }
}
我已经做了一些测试,我非常确定saveData函数可以正常工作。谢谢

  • 尝试修剪元素,而不是猜测后面是否有空白;还是不
  • 尽量使你的功能模块化
  • 您可以使函数返回从cookie读取所有数据的对象

    选中此项:

    function loadData(){
      var data = {}; 
      var elements = document.cookie.split(';');
      for (var i = 0; i < elements.length; i++){
        var cookie = elements[i];
            cookie = cookie.replace(/^\s+|\s+$/gm,''); // trimming whitespaces
            cookie = cookie.split('=');
            data[cookie[0]] = cookie[1];
      }
    
      return data;
    }
    
    var data = loadData();
    alert(data.currentR, data.blueWins, data.redWins);
    
    函数loadData(){
    变量数据={};
    var elements=document.cookie.split(“;”);
    对于(var i=0;i
    需要在document.cookie.split(“;”)中有一个空白

    i、 e

    只需在末尾添加
    trim()。它在头部和尾部都起作用

    
    cookie=cookieArray[i]。拆分('=')[0]。修剪();
    

    使用
    ===
    而不是
    =
    尝试
    document.cookie.split(“;”)
    (添加空格)。谢谢@Xufox!现在效果很好。你能解释一下空格在做什么吗?@harrison你只是用分号作为分隔符来分隔它。但实际的分隔符是分号和空格。您得到的是字符串形式的
    “currentR”
    ,而不是预期的
    “currentR”
    function loadData(){
      var data = {}; 
      var elements = document.cookie.split(';');
      for (var i = 0; i < elements.length; i++){
        var cookie = elements[i];
            cookie = cookie.replace(/^\s+|\s+$/gm,''); // trimming whitespaces
            cookie = cookie.split('=');
            data[cookie[0]] = cookie[1];
      }
    
      return data;
    }
    
    var data = loadData();
    alert(data.currentR, data.blueWins, data.redWins);
    
    document.cookie.split("; ")