Javascript中数组的比较与组合
我有三个阵列:Javascript中数组的比较与组合,javascript,arrays,comparison,Javascript,Arrays,Comparison,我有三个阵列: var dates = ['07/31/2013', '08/01/2013', '08/02/2013', '08/03/2013', '08/04/2013', '08/05/2013', '08/06/2013', '08/07/2013']; dates数组包含一周范围内的每个日期 var meetingdates = ['07/31/2013', '08/02/2013', '08/03/2013', '08/04/2013', '08/05/2013', '08/0
var dates = ['07/31/2013', '08/01/2013', '08/02/2013', '08/03/2013', '08/04/2013', '08/05/2013', '08/06/2013', '08/07/2013'];
dates数组包含一周范围内的每个日期
var meetingdates = ['07/31/2013', '08/02/2013', '08/03/2013', '08/04/2013', '08/05/2013', '08/07/2013'];
meetingdates数组包含日期,其中有一个或多个会议
var meetings = ['1', '3', '2', '4', '1', '5']
meetings数组包含meetingdates
日期上的会议数
我想将日期
数组与会议
数组进行比较,如果会议数组
中存在日期
中的条目,我想将属于该日期的会议数放入一个新数组,如果没有匹配项,将插入0:
因此,在将会议日期与日期进行比较后,这将是最终结果
meetingsPerDate = ['1', '0', '3', '2', '4', '1', '0', '0'];
我尝试使用以下循环解决此问题:
if(dates[y] == meetingdates [y]){
meetingsPerDate [y] = meetings [y];
}else {
meetingsPerDate[y] = 0;
}
}
我知道我将丢失一些数字,因为两个数组不遵循相同的模式,但我真的不知道如何解决这个问题
我希望我已经很好地解释了我的问题,如果没有,请告诉我
非常感谢您的帮助
谢谢 使用对象而不是数组:
var meetings = {
'07/31/2013': 1,
'08/02/2013': 3,
'08/03/2013': 2,
'08/04/2013': 4,
'08/05/2013': 1,
'08/07/2013': 5
}
然后只需将新日期添加到其中:
var date;
for (var i = 0; i < dates.length; i++) {
date = dates[i];
if (date in meetings) {
meetings[date] += 1;
} else {
meetings[date] = 1;
}
}
var日期;
对于(变量i=0;i
不确定这是否是最佳解决方案。但我设法找到了问题的答案:
for (var i = 0; i < dates.length; i++) {
var arrayIndex = meetingdates.indexOf(dates[i]);
if (arrayIndex == -1) {
console.log(dates[i] + ' ' + 0);
} else {
console.log(dates[i] + ' ' + meetings[arrayIndex]);
}
for(变量i=0;i
这个小循环返回的正是我所需要的。感谢您的输入!但我自己设法找到了解决方案。