无法将数据添加到从cookie中取出的数组

时间:2016-09-11 08:44:56

标签: javascript angularjs cookies

无法将数据添加到从Cookie中取出的数组中。

var x1 =[];
 if($cookies.get(uid )== undefined)
              {
                var arr =[];
                arr.push($scope.stock);
                $cookies.put("arr",JSON.stringify(arr));
                $cookies.put("uid","xxx");
                console.log("==uid not found in cookie in angular --- cookies.uid"+ $cookies.get("arr"));
              }
          else
              {
                 console.log("inside else"+JSON.stringify($cookies.getObject("arr"))); // gives output ["bse:yesbank"]
                 x1= JSON.stringify($cookies.getObject("arr"));
              ---->  console.log(x1 instanceof Array); // returns false 
              ---->   x1.push($scope.stock);

              }
它给出了 x1.push不是函数

此外,它表示JSON.stringify($cookies.getObject("arr"))不是数组,但上面表达式的值是["bse:yesbank"],它只是一个数组。请纠正我在哪里出错。

1 个答案:

答案 0 :(得分:1)

那是因为你使用JSON.stringify,将数组转换成一个看起来像数组的字符串。

尝试获取没有stringify的值:

x1= JSON.stringify(["test"]);
console.log(x1 instanceof Array); // returns false 

console.log(JSON.parse(x1) instanceof Array); // returns true