Angular 如何从 localStorage JSON 获取我的数组

时间:2021-06-25 11:18:27

标签: angular typescript

这是我保存在 localStorage 中的 JSON:

{
   "calculatorInfo":{
      "gender":"F",
      "name":"test",
      "surname":"test"
   },
   "contactInfo":{
      "email":"fvreferf@gmail.com",
      "phone":"568553353"
   },
   "underageChildInfo":[
      {
         "gender":"F",
         "name":"test1",
         "surname":"test2"
      },
      {
         "gender":"F",
         "name":"test3",
         "surname":"test"
      }
   ]
}

我正在获取这些数据并将其保存到我的对象中,如下所示: 但是当我尝试保存我的数组时,它显示未定义。

如何在这个对象中保存我的数组?

personalInfo: any;

    this.data = JSON.parse(localStorage.getItem('policy'));
    
       get info(): any {
         return this.personalInfo = {
            personalInfoId: 0,
            insurerInfo: {
               firstName:  this.data.calculatorInfo.name,
               lastName : this.data.calculatorInfo.surname,
               email: this.data.contactInfo.email
            },
            legalHeir:true,
            underageChildInfo: [
            {
              firstName: this.data.underageChildInfo.name
            }
            ]
          }
       }

3 个答案:

答案 0 :(得分:1)

代替

underageChildInfo: [
    {
        firstName: this.data.underageChildInfo.name
    }
]

你可以这样做:

underageChildInfo: this.data.underageChildInfo

如果您只想返回名称

underageChildInfo: this.data.underageChildInfo.map(i => ({ firstName: i.name }))

我希望这有效..没有测试过!

答案 1 :(得分:1)

错误在这里

npx jetify

underageChildInfo: [ { firstName: this.data.underageChildInfo.name } ] firstName 映射到 this.data.underageChildInfo

underageChildInfo

答案 2 :(得分:1)

代码中专门针对此代码段的问题

underageChildInfo: [
            {
              firstName: this.data.underageChildInfo.name
            }
            ]

所以如果这个 sniipt 我建议用下面的代码块替换它:

underageChildInfo:this.data.underageChildInfo.map((item) => {
      return { firstName: item.name };
    })