Массив Pu sh на основе значения JSON и ключа - PullRequest
0 голосов
/ 04 августа 2020

У меня есть массив JSON, которым я пытаюсь управлять с помощью jQuery до pu sh сгенерированного массива options на основе значения group_id и дочерних id. Я ищу способ идентифицировать эти ключи и значения, чтобы инициировать pu sh, возможно, через итерацию.

Например, если бы я хотел вставить, где group_id имеет значение 1, а у детей - с идентификатором 1, мой созданный массив будет вставлен в параметры.

var data = $.parseJSON(array);

var options = [];
    var item1 = {
            "option_id": 1,
            "option": "",
            "value": "",
        },
        item2 = {
            "option_id": 2,
            "option": "",
            "value": "",
        },
    };
options.push(item1, item2);

var group = data.filter(function(data) { return data.group_id === 1; });
var child = group.filter(function(children) { return children.id === 1; });

child.options = options; 

Мой начальный массив data будет выглядеть так:

[
  {
    "group_id": 1,
    "children": [
      {
        "id": 1,
        "options": []
      },
      {
        "id": 2,
        "options": []
      }
    ]
  },
  {
    "group_id": 2,
    "children": [
      {
        "id": 1,
        "options": []
      },
      {
        "id": 2,
        "options": []
      }
    ]
  }
]

Результирующий массив будет:

[
  {
    "group_id": 1,
    "children": [
      {
        "id": 1,
        "options": [
          {
            "option_id": 1,
            "option": "",
            "value": ""
          },
          {
            "option_id": 2,
            "option": "",
            "value": ""
          },
        ]
      },
      {
        "id": 2,
        "options": []
      }
    ]
  },
  {
    "group_id": 2,
    "children": [
      {
        "id": 1,
        "options": []
      },
      {
        "id": 2,
        "options": []
      }
    ]
  }
]

1 Ответ

0 голосов
/ 06 августа 2020

Мне удалось добиться этого, используя следующее.

$.each(data, function(key, item){
    if (item.group_id == 1)
    {
        $.each(item.children, function(key, item){
            if (item.id == 1)
            {
                item.options = [];
                item.options.push(options);
            }
        });
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...