Angular отображение полей из массива при преобразовании только чисел в строки? - PullRequest
0 голосов
/ 25 марта 2020

У меня есть модель, и мне нужно сопоставить этот json, отфильтрованный от другого объекта json ниже, с моделью. Я хочу преобразовать все числовые значения в строки, но сохранить значения bool нетронутыми. Как это можно сделать динамически?

 var users = [{
            "firstName": "john",
            "middleName": null,
            "lastName": "doe",
            "registrationNumber": 334,
            "isOld": true
        },
        {
            "firstName": "paul",
            "middleName": null,
            "lastName": "dean",
            "registrationNumber": 123,
            "isOld": true

        },
        {
            "firstName": "andrew",
            "middleName": null,
            "lastName": "mac",
            "registrationNumber": 132,
            "isOld": true
        }
    ]

Это отображает отфильтрованные данные в мою модель, однако числовые поля по-прежнему числительны c, и они нужны мне как строки. Помните, что это данные Dynami c, поэтому у меня может не быть чисел.

this.model = {};
    users.map(item => this.model[item.key] = item.value);

1 Ответ

1 голос
/ 25 марта 2020

Попробуйте это

let users = [{
    "firstName": "john",
    "middleName": null,
    "lastName": "doe",
    "registrationNumber": 334,
    "isOld": true
  },
  {
    "firstName": "paul",
    "middleName": null,
    "lastName": "dean",
    "registrationNumber": 123,
    "isOld": true

  },
  {
    "firstName": "andrew",
    "middleName": null,
    "lastName": "mac",
    "registrationNumber": 132,
    "isOld": true
  }
];

let arr=users.map(user =>{
 Object.keys(user).forEach((prop) =>{
  if (typeof user[prop] == "number") 
      user[prop] = String(user[prop])
  });
  return user;
});
console.log(arr);
.as-console-wrapper { max-height: 100% !important; top: 0; }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...