Есть ли способ извлечь значения данных из этих объектов - PullRequest
0 голосов
/ 13 января 2020

У меня есть данные, как показано на рисунке ниже, и я пытаюсь извлечь массив Data из json, который был на изображении ниже.

enter image description here

Данные имеют ключевые значения, такие как condition_type и другие значения.

Я могу получить каждое отдельное значение, используя приведенный ниже код

const  submitcode = (data) => {
  const tasks = Object.values(data);
  console.log(tasks[0].Data[0]);
 }
 console.log(tasks[0].Data[0]);

Может кто-нибудь предложить Есть ли способ получить массив Data из этих 6 объектов с помощью реакции JS.

Заранее большое спасибо

Ответы [ 3 ]

3 голосов
/ 13 января 2020

Вот простой фрагмент, который возвращает массив Data

const array = [
  {Cols: [], Data: [{condition_type: "1"}], title: "Environmental Condition"},
  {Cols: [], Data: [{condition_type: "2"}], title: "Ventilation"},
  {Cols: [], Data: [{condition_type: "3"}], title: "Thermal Comfort"},
  {Cols: [], Data: [{condition_type: "4"}], title: "Internal Loads"},
  {Cols: [], Data: [{condition_type: "5"}], title: "Exhaust"},
  {Cols: [], Data: [{condition_type: "6"}], title: "Misc"},
]

console.log(array.map(({Data: [val]})=>val))

или если вы хотите получить прямой доступ к значениям определенных клавиш

const array = [
  {Cols: [], Data: [{condition_type: "1"}], title: "Environmental Condition"},
  {Cols: [], Data: [{condition_type: "2"}], title: "Ventilation"},
  {Cols: [], Data: [{condition_type: "3"}], title: "Thermal Comfort"},
  {Cols: [], Data: [{condition_type: "4"}], title: "Internal Loads"},
  {Cols: [], Data: [{condition_type: "5"}], title: "Exhaust"},
  {Cols: [], Data: [{condition_type: "6"}], title: "Misc"},
]

console.log(array.map(({Data: [{condition_type}]})=>condition_type))
2 голосов
/ 13 января 2020

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

tasks.map(({ Data: [el] }) => el);

const tasks = [{ Data: [{ a: 1, b: 2 }] }, { Data: [{ a: 3, b: 4 }] }];
console.log(tasks.map(({ Data: [el] }) => el));

Или также немного хакерский, используя двойное разрушение объекта также с массивом, используя индекс массива:

tasks.map(({ Data: { 0: el } }) => el);

const tasks = [{ Data: [{ a: 1, b: 2 }] }, { Data: [{ a: 3, b: 4 }] }];
console.log(tasks.map(({ Data: { 0: el } }) => el));
0 голосов
/ 13 января 2020

вы можете сопоставить родительский (массив задач) и получить дочерний (массив данных)

const result = tasks.map(s => s.Data[0]);
//result contains array of Data objects
...