我在一个数组中有一个数组,我需要从中获取数据。
我必须将每个索引内的事件数组作为一个数组,并将事件数组作为索引。
这是我的尝试:
//array
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": 9,
"user_id": "48f8fd57-5116-419c-b43a-cff90a4ae39b",
"event_id": 108,
"created_at": "2019-06-14 10:41:13",
"updated_at": "2019-06-14 10:41:13",
"events": [{
"id": 108,
"title": "GC",
"description": "FDGDFGDFG",
"url": "DFGFDG",
"color": "#000000",
"start": "2019-06-25 22:00:00",
"end": "2019-06-29 22:00:00"
}]
}]
}
// events = this array
var parseEvents = function(events) {
var eventArray = [];
jQuery.each(events, function(index, item) {
eventArray.push(item['events']);
});
return (eventArray);
}
console.log(parseEvents(events));
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
结果应该是:
{ 1 //index : [{
"id": 102,
"title": "asdsadsa",
"description": "dsadsadsa",
"url": "asdsad",
"color": "#000000",
"start": "2019-06-04 08:30:00",
"end": "2019-06-04 13:00:00"
}],
2: [{
"id": 102,
"title": "asdsadsa",
"description": "dsadsadsa",
"url": "asdsad",
"color": "#000000",
"start": "2019-06-04 08:30:00",
"end": "2019-06-04 13:00:00"
}],
}
像这样,我希望事件数组中的每个事件数组都是一个索引
如何从每个索引中获取数组事件并推送到数组。
假设您想要所有事件的单个数组,没有理由为此使用 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。
现场示例:
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
.
现场示例:
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));
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句