У меня проблема с манипулированием данными в Javascript / jQuery, и я мог бы использовать некоторую помощь.
У меня есть массив объектов, который выглядит так:
var projects = [
{title:'project1'},
{title:'project2'},
{title:'project3'},
];
У меня есть еще один массив объектов, который выглядит следующим образом:
ganttEvents = [
{
text: 'some text',
start_date: '2018/06/13',
end_date: '2018/06/14',
id: '1',
readonly: true,
project: 'project1',
category: 'scoping',
}
{
text: 'some text2',
start_date: '2018/06/14',
end_date: '2018/06/15',
id: '1',
readonly: true,
project: 'project2',
category: 'scoping',
}
{
text: 'some text3',
start_date: '2018/06/15',
end_date: '2018/06/16',
id: '1',
readonly: true,
project: 'project2',
category: 'design',
}
{
text: 'some text4',
start_date: '2018/06/13',
end_date: '2018/06/14',
id: '1',
readonly: true,
project: 'project2',
category: 'scoping',
}
{
text: 'some text5',
start_date: '2018/06/14',
end_date: '2018/06/15',
id: '1',
readonly: true,
project: 'project3',
category: 'testing',
}
{
text: 'some text6',
start_date: '2018/06/15',
end_date: '2018/06/16',
id: '1',
readonly: true,
project: 'project3',
category: 'build',
}
];
Поле проекта ввторой объект всегда будет одним из объектов в первом массиве.
Затем мне нужно получить объект, который выглядит следующим образом:
source: [
{
name: "project1", // a project defined in the projects array
desc: "scoping", // the category from the ganttEvents array of objects
values: [
{
to: "2018/06/13", // the start_date from the ganttEvents array of objects
from: "2018/06/14", // the end_date from the ganttEvents array of objects
desc: "some text", // the text from the ganttEvents array of objects
label: "some text", // the text from the ganttEvents array of objects
}
]
},
{
name: "project2", // a project defined in the projects array
desc: "scoping", // the category from the ganttEvents array of objects
values: [
{
to: "2018/06/14",
from: "2018/06/15",
desc: "some text2",
label: "some text2",
},
{
to: "2018/06/13",
from: "2018/06/14",
desc: "some text4",
label: "some text4",
},
]
},
{
name: "project3", // a project defined in the projects array
desc: "testing", // the category from the ganttEvents array of objects
values: [
{
to: "2018/06/14",
from: "2018/06/15",
desc: "some text5",
label: "some text5",
}
]
},
{
name: "project3", // a project defined in the projects array
desc: "build", // the category from the ganttEvents array of objects
values: [
{
to: "2018/06/15",
from: "2018/06/16",
desc: "some text6",
label: "some text6",
}
]
},
]
Может быть несколько значений на всех этапах для каждого проекта, и, возможно, проекты без событий вообщедолжны быть опущены из исходного объекта.
Не могли бы вы помочь?
Редактировать:
Основой этого является то, что я извлекаю список событий из списка SharePoint с помощью SharePointPlus,Это приводит к массиву ganttEvents.Мне нужно подключить это к библиотеке jQuery.Gantt, которая требует, чтобы события были отформатированы определенным образом.
jQuery.Gantt
Извините, но я относительно новичок в Javascript (обычно программист на Python). Я пробовал разные способы сделать это безрезультатно.