Angular: Как переставить объект Json в Angular - PullRequest
0 голосов
/ 09 июля 2020

Мне нужно получить результат, как показано ниже,

Вход Json:

var arrayList = [{"id":"100","country":"india","name":"ram"},
                 {"id":"100","country":"india","name":"sita"},
                 {"id":"100","country":"india","name":"lakshman"},
                 {"id":"109","country":"usa","name":"jhon"},
                 {"id":"109","country":"usa","name":"adam"},
                 {"id":"110","country":"uk","name":"andy"}]

Ожидаемый результат Json Объект:

 expectedOutputJson=["1":"ram":{"id":"100","country":"india","name":"ram"},
                "sita":{"id":"100","country":"india","name":"sita"},
                "lakshman":{"id":"100","country":"india","name":"lakshman"}
            "2":"jhon":{"id":"109","country":"usa","name":"jhon"},
                "adam":{"id":"109","country":"usa","name":"adam"}
            "3":"andy":{"id":"110","country":"uk","name":"andy"}]

             

Пробовал с ниже код:

import { Component } from '@angular/core';
@Component({
  selector: 'my-app',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  name = 'Angular';
  arrayList = [{"id":"100","country":"india","name":"ram"},
                 {"id":"100","country":"india","name":"sita"},
                 {"id":"100","country":"india","name":"lakshman"},
                 {"id":"109","country":"usa","name":"jhon"},
                 {"id":"109","country":"usa","name":"adam"},
                 {"id":"110","country":"uk","name":"andy"}]
  };

// Мне нужно объявить мою карту примерно так, как показано ниже, но я не могу это сделать

private map = new Map<string, list<Map<string, list<Map<string, string>>>>();


constructor() {
    Object.keys(this.arrayList['values']).forEach(key => this.map.set(key, this.arrayList['values'][key]))
    console.log(this.map)
  }
}

Может ли кто-нибудь помочь мне в этом, пожалуйста.

1 Ответ

0 голосов
/ 09 июля 2020

ваш результат недействителен, трудно сказать, что вам нужно, но я думаю, вы просто пытаетесь преобразовать массив в объект с ключом по индексу ... что является простой операцией сокращения ...

   this.expected = this.arrayList.reduce((acc, v, idx) => {
     acc[idx] = v;
     return acc;
   }, {});

или, если вам действительно нужна карта, она похожа

   this.expected = this.arrayList.reduce((acc, v, idx) => {
     acc.set(idx.toString(), v);
     return acc;
   }, new Map());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...