Как поместить данные в массив как дерево JSON в реагировать родной? - PullRequest
0 голосов
/ 09 мая 2019

Я занимаюсь разработкой мобильного приложения с использованием React Native.Мне нужно поместить некоторые данные в массив с категориями (SubKeys / Children).У меня есть данные, хранящиеся в базе данных реального времени Firebase.Итак, я хочу поместить эти данные в массив, поскольку это дерево JSON существует.Например, я хочу построить массив, как показано ниже.Существует категория под названием «Фрукты».В соответствии с этим у него есть «Яблоко», «Клубника» и т. Д. Так же, как и для других категорий.

const items = [
    {
      name: 'Fruits',
      id: 0,
      children: [
        {
          name: 'Apple',
          id: 10,
        },
        {
          name: 'Strawberry',
          id: 17,
        },
        {
          name: 'Pineapple',
          id: 13,
        },
        {
          name: 'Banana',
          id: 14,
        },
        {
          name: 'Watermelon',
          id: 15,
        },
        {
          name: 'Kiwi fruit',
          id: 16,
        },
      ],
    },
    {
      name: 'Gems',
      id: 1,
      children: [
        {
          name: 'Quartz',
          id: 20,
        },
        {
          name: 'Zircon',
          id: 21,
        },
        {
          name: 'Sapphire',
          id: 22,
        },
        {
          name: 'Topaz',
          id: 23,
        },
      ],
    },
    {
      name: 'Plants',
      id: 2,
      children: [
        {
          name: "Mother In Law's Tongue",
          id: 30,
        },
        {
          name: 'Yucca',
          id: 31,
        },
        {
          name: 'Monsteria',
          id: 32,
        },
        {
          name: 'Palm',
          id: 33,
        },
      ],
    },
  ];

1 Ответ

0 голосов
/ 09 мая 2019

давайте рассмотрим ввод, имеющий значение, как мы ожидаем:

let output=[]
for(let i=0;i<input.length;i++){
  let obj={};
  obj.name = input[i].name
  obj.id = input[i].id
  obj.children = [ ...input.children]
  output.push(obj);
}
...