Как перебрать получившийся массив .map? - PullRequest
0 голосов
/ 27 июня 2019

У меня есть следующий ответ от моего http-сервера:

сайты

[
  {
    "siteName": "Site de Marseille",
    "siteAdress1": "rue de blabla",
    "siteAddress2": "string",
    "siteCodPost": "13010",
    "siteTown": "Marseille",
    "points": [
      { "lat": 44.841225, "lng": -0.580036 },
      { "lat": 44.842236, "lng": -0.64696 },
      { "lat": 44.805615, "lng": -0.63084 }
    ],
    "id": "5d0ce7c4a06b07213a87a753",
    "companyId": "5cd430745304a21b9464a219",
    "customerId": "5cd430c65304a21b9464a21a"
  },
  {
    "siteName": "Site de Bordeaux",
    "siteAdress1": "rue de la  Garonne",
    "siteAddress2": "string",
    "siteCodPost": "31000",
    "siteTown": "Bordeau    x",
    "points": [
      { "lat": 44.819868, "lng": -0.582811 },
      { "lat": 44.853709, "lng": -0.483573 },
      { "lat": 44.80696, "lng": -0.53299 },
      { "lat": 44.80696, "lng": -0.629078 }
    ],
    "id": "5d0cf65fa06b07213a87a754",
    "companyId": "5cd430745304a21b9464a219",
    "customerId": "5cd430c65304a21b9464a21a"
  }
] 

Это 2 сайта, и для каждого сайта свойство, называемое точками, является массивом. Мое желание состоит в том, чтобы извлекать каждый массив точек независимо и помещать их в другой массив. Этот новый массив будет массивом массивов.

Для этого у меня есть этот код:

this.customerApi.getSites(this.currentUser.id)
.subscribe(response => {
  this.sites = response;
  const ok = this.sites.map(s => s.points);
  this.rectangles.push(ok);
});

Я получаю Observable () из моего API (см. Выше) и использую преобразование .map. Моя проблема в том, что он создает массив, и мой код выдвигает этот массив, состоящий из массивов точек.

Я хочу выдвинуть каждый массив точек вместо массива массивов (созданного .map) точек.

Есть ли какой-нибудь простой способ решить эту проблему?

С наилучшими пожеланиями.

Ответы [ 2 ]

1 голос
/ 27 июня 2019
this.customerApi.getSites(this.currentUser.id)
 .subscribe(response => {
   this.sites = response;
   let pointsArray = [];
   this.sites.map((item) => {
    pointsArray.push(item.points)
   });
   // output in pointsArray
 });
1 голос
/ 27 июня 2019
ok.forEach((points) => this.rectangles.push(points))
...