Преобразовать структуру данных в Javascript

Есть структура данных следующего содержания

var data = {"disk_name":["new","my"],"luks_uuid":["ec06935d-a72a-460a-aaba-205b58a53c01","87be6eca-e043-4139-b637-f91229631d29"],"uuid_disk":["58fbc706-d1ef-4922-8cf6-9078a7fa64cf","6708c974-158f-438a-9518-3225cecc9c0c"]}

Нужно преобразовать в следующий вид

list = [
{"disk_name":"new","luks_uuid":"ec06935d-a72a-460a-aaba-205b58a53c01","uuid_disk":"58fbc706-d1ef-4922-8cf6-9078a7fa64cf"},
{"disk_name":"my","luks_uuid":"87be6eca-e043-4139-b637-f91229631d29","uuid_disk":"6708c974-158f-438a-9518-3225cecc9c0c"}
]

Я ума не приложу, как правильно пройтись по этому json, чтоб собрать именно такую структуру. Прошу помощи


Ответы (1 шт):

Автор решения: Jean-Claude

Это же проще простого

let data = {
  "disk_name": ["new", "my"],
  "luks_uuid": ["ec06935d-a72a-460a-aaba-205b58a53c01", "87be6eca-e043-4139-b637-f91229631d29"],
  "uuid_disk": ["58fbc706-d1ef-4922-8cf6-9078a7fa64cf", "6708c974-158f-438a-9518-3225cecc9c0c"]
};


let res = [];

for (let i = 0; i < data.disk_name.length; i++) {
  let obj = {};
  obj.disk_name = data.disk_name[i];
  obj.luks_uuid = data.luks_uuid[i];
  obj.uuid_disk = data.uuid_disk[i];
  res.push(obj);
}

console.log(res);

Или так

let data = {
  "disk_name": ["new", "my"],
  "luks_uuid": ["ec06935d-a72a-460a-aaba-205b58a53c01", "87be6eca-e043-4139-b637-f91229631d29"],
  "uuid_disk": ["58fbc706-d1ef-4922-8cf6-9078a7fa64cf", "6708c974-158f-438a-9518-3225cecc9c0c"]
};

let keys = Object.keys(data);
let res = [];

for (let i = 0; i < data[keys[0]].length; i++) {
  let obj = {};
  for (let j = 0; j < keys.length; j++) {
    obj[keys[j]] = data[keys[j]][i];
  }
  res.push(obj);
}

console.log(res);

→ Ссылка