在Angular 7中遇到数组问题

时间:2018-12-04 03:11:16

标签: angular

长话短说:

我有一个存储在sessionStorage中的数据集,格式为:

[{
    "id": "123:456",
    "streetAddress": "1020 15th St",
    "point": {
      "lati": 35.74633,
      "longi": -101.99677
    }
  },
  {
    "id": "234:567",
    "streetAddress": "123 15th St",
    "point": {
      "lati": 30.2996,
      "longi": -100.9976
    }
  }
]

在我的服务中,我正在设置:

public homeData: any[] = JSON.parse(sessionStorage.getItem('homes'));

在我的组件中:

ngOnInit(): void {
    const data = this.searchpropservice.homeData;
    console.log(data);
  }

这正在将控制台中的数据记录为数组,但是,我一直试图实际使用数组中的任何数据。我尝试了许多不同的尝试,但都没有成功。

为简单起见,我将如何在控制台中将JSON数据的每个部分记录为自己的数据集/数组?

谢谢!

2 个答案:

答案 0 :(得分:0)

关闭主题,但是Typescript允许您在变量周围添加严格的类型。您的homeData的键入应为;

interface HomeData {
  id: string;
  streetAddress: string;
  point: {
    lati: number;
    longi: number;
  }
}

public homeData: HomeData[] = JSON.parse(sessionStorage.getItem('homes'));

就像我上面的评论一样,您应该能够使用data[0].id

访问数组中的第一个ID。

您还可以使用遍历数组;

data.forEach(item => {
  console.log('id', item.id);
  console.log('street address', item.streetAddress);
  console.log('point/lati', item.point.lati);
  console.log('point/longi', item.point.lati);
});

答案 1 :(得分:0)

感谢@sketchthat,我能够解决此问题。

我只需要将[0]添加到数据属性中,而我将其添加到id属性中。