Предполагая, что вам нужен один массив всех событий, нет никаких причин использовать для этого jQuery, только стандартную библиотеку JavaScript.
В ES5:
var parseEvents = function(events) {
var eventArray = [];
events.events.forEach(function(item) {
eventArray.push.apply(eventArray, item.events);
});
return eventArray;
};
Ваш events
объект имеет свойство events
, которое представляет собой массив объектов, обладающих свойством events
, поэтому вышеприведенный цикл проходит через эти объекты и помещает их события в eventArray
. Эта строка:
eventArray.push.apply(eventArray, item.events);
фактически называется eventArray.push(event, event, event, event)
столько раз, сколько в item.events
. Подробнее см. apply
в MDN .
Live Пример:
var events = {
"events": [{
"id": 3,
"user_id": "48f8fd57-5116-419c-b43a-cff90a4ae39b",
"event_id": 102,
"created_at": "2019-06-13 20:46:40",
"updated_at": "2019-06-13 20:46:40",
"events": [{
"id": 102,
"title": "asdsadsa",
"description": "dsadsadsa",
"url": "asdsad",
"color": "#000000",
"start": "2019-06-04 08:30:00",
"end": "2019-06-04 13:00:00"
}]
}, {
"id": 4,
"user_id": "48f8fd57-5116-419c-b43a-cff90a4ae39b",
"event_id": 103,
"created_at": "2019-06-13 20:46:45",
"updated_at": "2019-06-13 20:46:45",
"events": [{
"id": 103,
"title": "asdsad",
"description": "sadsad",
"url": "",
"color": "#000000",
"start": "2019-06-04 08:30:00",
"end": "2019-06-04 13:00:00"
}]
}]
}
var parseEvents = function(events) {
var eventArray = [];
events.events.forEach(function(item) {
eventArray.push.apply(eventArray, item.events);
});
return eventArray;
};
console.log(parseEvents(events));
Это яснее в ES2015 +:
const parseEvents = function(events) {
const eventArray = [];
for (const item of events.events) {
eventArray.push(...item.events);
}
return eventArray;
};
Использует for-of
для циклического перебора events.events
и распространения нотации для вставки всех записей в item.events
в eventArray
.
Live Пример:
const events = {
"events": [{
"id": 3,
"user_id": "48f8fd57-5116-419c-b43a-cff90a4ae39b",
"event_id": 102,
"created_at": "2019-06-13 20:46:40",
"updated_at": "2019-06-13 20:46:40",
"events": [{
"id": 102,
"title": "asdsadsa",
"description": "dsadsadsa",
"url": "asdsad",
"color": "#000000",
"start": "2019-06-04 08:30:00",
"end": "2019-06-04 13:00:00"
}]
}, {
"id": 4,
"user_id": "48f8fd57-5116-419c-b43a-cff90a4ae39b",
"event_id": 103,
"created_at": "2019-06-13 20:46:45",
"updated_at": "2019-06-13 20:46:45",
"events": [{
"id": 103,
"title": "asdsad",
"description": "sadsad",
"url": "",
"color": "#000000",
"start": "2019-06-04 08:30:00",
"end": "2019-06-04 13:00:00"
}]
}]
}
const parseEvents = function(events) {
const eventArray = [];
for (const item of events.events) {
eventArray.push(...item.events);
}
return eventArray;
};
console.log(parseEvents(events));