Структура данных, которую я пытаюсь получить, выглядела бы так: я хотел бы, чтобы list_id стал ключом в объекте и содержал все идентификаторы элементов, которые имеют соответствующий список идентификаторов.
var lists = { (list_id)1 : [1, 2, 3]
(list_id)2 : [4, 5, 6]
(list_id)3 : [7, 8, 9]
(list_id)4 : [10, 11, 12] };
этот объект создан из структуры данных json, которая выглядит следующим образом:
let json = [{ id: 1, list_id: 1 }, { id: 2, list_id: 1 },
{id: 3, list_id: 1 }, {id: 4, list_id: 2 },
{id: 5, list_id: 2 }, {id: 6, list_id: 2 },
{id: 7, list_id: 3 }, {id: 8, list_id: 3 },
{id: 9, list_id: 3 }, {id: 10, list_id: 4 },
{id: 11, list_id: 4 }, {id: 12, list_id: 4 }]
Я могу создать объект, который содержит все list_id в качестве ключей, но меня озадачивает нажатие actions_id в значениемассив пар с идентификатором списка совпадений.
let listAll = {};
json.forEach(function(lista, index, listb) {
listAll[lista.list_id] = [];
if ( listAll[lista.list_id] === lista.list_id){
listAll[lista.list_id].push(lista.id)
} else {
listAll[lista.list_id] = [lista.id];
}
});
Моя цель - иметь и объект, содержащий ключ для каждого list_id, доступного в настоящее время из действий.Затем добавьте каждое действие, которое содержит соответствующий list_id, в массив пар значений.
текущий вывод этого кода
{ '1': [ 3 ], '2': [ 6 ], '3': [ 9 ], '4': [ 12 ] }
, который не содержит все числа, каждый массив должен содержать 3 числа.