[英]Add properties from one array of objects to another
I have the following Angular 1.0 controller: 我有以下Angular 1.0控制器:
function EventListController($timeout, eventService) {
var vm = this;
vm.events = getEvents();
vm.calendar buildCalendar();
}
The variable vm.events is something like: 变量vm.events类似于:
vm.events = [
{ date: "2016-09-22T12:05:42.03", id: 12 },
{ date: "2016-09-25T12:05:42.03", id: 14 }
];
The variable calendar is the following: 可变日历如下:
vm.calendar = {
weeks: [
{ days: [ { date: "2016-09-12T12:05:42.03" }, ... ] }
{ days: [ { date: "2016-09-22T12:05:42.03" }, ... ] }
]
}
I need to go through all events dates and add the ID property to the calendar date of the same DAY. 我需要检查所有事件的日期,并将ID属性添加到同一天的日历日期。 Calendar weeks has all days of that month.
日历周包含该月的所有日子。 In this case is September 2016.
在这种情况下是2016年9月。
How can I do this? 我怎样才能做到这一点?
You need to iterate both objects. 您需要迭代两个对象。 You can use Date constructor to create Date object and the use setHours(0,0,0,0) to set hours, mins.. as zero, then you can only compare date.
您可以使用Date构造函数创建Date对象,并使用setHours(0,0,0,0)将小时,分钟..设置为零,然后只能比较日期。
var vm = {}; vm.events = [{ date: "2016-09-22T12:05:42.03", id: 12 }, { date: "2016-09-25T12:05:42.03", id: 14 }]; vm.calendar = { weeks: [{ days: [{ date: "2016-09-25T09:05:42.03" }] }] }; vm.calendar.weeks.forEach(function(w) { w.days.forEach(function(d) { var e = vm.events.filter(function(e) { return new Date(e.date).setHours(0, 0, 0, 0) == new Date(d.date).setHours(0, 0, 0, 0); }); if (e.length) { d.id = e[0].id; } console.log(d) }) }); //console.log(vm.calendar.weeks)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.