如何将它变成Angular 2中的对象数组?

时间:2017-05-03 15:41:22

标签: angular typescript

这是我的代码。我正在尝试创建一个对象数组,然后我将存储在本地存储中。这是问题所在,我需要先从Local Storage获取现有值。

然后我需要将新数据对象添加到现有数组中。然后我将其转换为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}]

请帮助.Been尝试了几天,任何帮助将不胜感激。三江源!

2 个答案:

答案 0 :(得分:1)

您可以在每次调用时将值嵌套在:

abc = [get];

将其替换为:

abc = get;

它应该有效

答案 1 :(得分:0)

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

应替换为

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

在运行更正的代码之前,不要忘记执行localStorage.deleteItem('user');清除错误代码所存储的错误数据。