2017-05-03 61 views
1

这是我的代码。我尝试了几天后创建一个对象数组,然后我将其存储在本地存储中。这是问题所在,我需要先从本地存储获取现有值。如何将它变成Angular 2中的对象数组?

然后我需要添加新的数据对象到现有的数组。然后我将它转换成JSON,以便我可以将它存储回本地存储。

onRegisterSubmit(){ 
    const user = { 
     a: this.a, 
     b: this.b, 
     c: this.c, 
     id: Date.now() 
    }  

    var abc = []; 
    var get = JSON.parse(localStorage.getItem('user')); 
    abc = [get]; 
    abc.push(user); 

    localStorage.setItem('user', JSON.stringify(abc)); 

    console.log(JSON.stringify(abc)); 
    console.log(get); 
    } 

我想要的JSON是这样的对象的数组,

[{"hour":1,"minute":21,"ampm":"PM","repeatDays":[],"message":"","todayOrTomorrow":"Tomorrow","isRepeatMode":false,"isEnabled":false,"id":"1493797882440"},{"hour":1,"minute":24,"ampm":"PM","repeatDays":[],"message":"","todayOrTomorrow":"Tomorrow","isRepeatMode":false,"isEnabled":false,"id":"1493797896257"},{"hour":6,"minute":14,"ampm":"PM","repeatDays":[],"message":"","todayOrTomorrow":"Tomorrow","isRepeatMode":false,"isEnabled":false,"id":"1493815470408"}] 

这是我的JSON。

[[[[[[[{"id":1493820594019},{"id":1493820606448}],{"id":1493820609111}],{"id":1493820610150}],{"id":1493820610553}],{"id":1493820610827}],{"id":1493820611015}],{"id":1493820612018}] 

请help.Been尝试几天,任何帮助将不胜感激。谢谢!

+0

*会发生什么,而不是你想要的工作?* – nitind

+0

我不明白你@nitind –

+0

你得到什么错误信息,对于初学者。 – nitind

回答

1

你一直在每次调用嵌套的值:

abc = [get]; 

将其替换为:

abc = get; 

,它应该工作

+0

这给出了一个错误,abc.push不是一个函数。 –

+0

你能调试并告诉我们你得到的是什么类型吗? – Meir

0
var abc = []; 
var get = JSON.parse(localStorage.getItem('user')); 
abc = [get]; 

应改为

var abc = JSON.parse(localStorage.getItem('user')) || []; 

不要忘记执行localStorage.deleteItem('user');来清除错误的数据,在错误的代码中存储错误的数据后,才能运行更正的代码。