Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.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 localStorage.setitem不存储具有拥有数组值的键的对象;_Javascript_Angular_Typescript - Fatal编程技术网

Javascript localStorage.setitem不存储具有拥有数组值的键的对象;

Javascript localStorage.setitem不存储具有拥有数组值的键的对象;,javascript,angular,typescript,Javascript,Angular,Typescript,当对象的键具有数组值时,localStorage.setItem会错误地存储对象值 var obj = data : { cachedat : ['1' , 2 , 3] }; localStorage.setItem('data' , JSON.stringify(obj) ); 但是 您应该向JSON.stringify传递一个对象: var obj = {data: { cachedat : ['1' , 2 , 3] }}; localStorage.setItem('data' ,

当对象的键具有数组值时,localStorage.setItem会错误地存储对象值

var obj = data : { cachedat : ['1' , 2 , 3] };
localStorage.setItem('data' , JSON.stringify(obj) );
但是


您应该向JSON.stringify传递一个对象:

var obj = {data: { cachedat : ['1' , 2 , 3] }};
localStorage.setItem('data' , JSON.stringify(obj) );

var arr = JSON.parse(localStorage.getItem('data')) ; 
您的代码必须是:

var obj = {'data' : { 'cachedat' : ['1' , 2 , 3] }}
localStorage.setItem('data' , JSON.stringify(obj) );
您可以这样做:

var obj = {
  data: { cachedat:[1 , 2 , 3] }
};

localStorage.setItem('data' , JSON.stringify(obj));

var output = JSON.parse(localStorage.getItem('data')); 
console.log(output);
上述代码的输出:

{
  data: {
    cachedat: [1, 2, 3]
  }
}

obj=data:
应该抛出错误。
localStorage
notlocalstorag和
{data:{cachedat:['1',2,3]}
not
data:{cachedat:['1',2,3]}
我以前就这样试过。但我的输出类似于=>data:cachedat:[]@Thantzinton那么您需要什么输出呢?请澄清您的问题,并将示例输出添加到您的问题中,这是必需的;但我得到的输出是{data:{cacheda:[]}}我的答案的输出正是您想要的。看看这个
{
  data: {
    cachedat: [1, 2, 3]
  }
}