Отформатируйте объект, чтобы разделить заголовок данных

#arrays #json #typescript

Вопрос:

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

В настоящее время у меня есть следующий объект:

 [
  {
    "id": "1",
    "ser": null,
    "IP": null,
    "host": "",
    "type": "Web",
    "auth": ""
  },
  {
    "id": "2",
    "ser": null,
    "IP": "191.174.230.02",
    "host": "",
    "type": "Proxy",
    "auth": ""
  }
]
 

Это то, чего я хочу достичь:

 [
    "id",
    "ser",
    "IP",
    "host",
    "type",
    "auth"
],
[
    "1",
    null,
    null,
    "",
    "Web",
    ""
],
[
    "2",
    null,
    "191.174.230.02",
    "",
    "Proxy",
    ""
]
 

Это объект, который я хочу получить, добавив к values нему свойство:`

 {
  "values": [
    [
        "id",
        "ser",
        "IP",
        "host",
        "type",
        "auth"
    ],
    [
        "1",
        null,
        null,
        "",
        "Web",
        ""
    ],
    [
        "2",
        null,
        "191.174.230.02",
        "",
        "Proxy",
        ""
    ]
  ]
}
 

Ответ №1:

  1. используйте Object.keys(данные[0]), чтобы получить ключи первого элемента
  2. повторите все элементы с Object.values(элемент), чтобы получить данные каждого элемента
  3. введите ключ и значение элемента в массив

Вот код.

 var data = [
  {
    id: "1",
    ser: null,
    IP: null,
    host: "",
    type: "Web",
    auth: "",
  },
  {
    id: "2",
    ser: null,
    IP: "191.174.230.02",
    host: "",
    type: "Proxy",
    auth: "",
  },
];

var arr = [Object.keys(data[0])];
for (let element of data) {
  arr.push(Object.values(element));
}

var obj = { values: arr };
 

Комментарии:

1. Хорошо, это работает, но можно ли добавить свойство к конечному объекту? Я обновил свой вопрос

2. используйте объект для хранения ключа «значения» и arr, см. Мой обновленный ответ