Jquery - 匹配动态日期字符串 return 使用长度匹配的数量
Jquery - Match a dynamic date string return the amount of matches using length
我正在使用 MorrisJS 构建图表,到目前为止它已经出现了。我目前遇到 jquery 脚本的问题。我正在尝试匹配一个日期字符串并让它 return 使用 .lenght 找到的匹配数量。由于某种原因,它总是 returns 0.
我在 jsfiddle 中重现了这个问题。 https://jsfiddle.net/awo5aaqb/2/
这是目前给我带来麻烦的代码:
var dates = element.created_date.slice(0,-9);
var count_2015 = $(dates).find('2015'+element.created_date.slice(5,-9)).length;
var count_2016 = $(dates).find('2016'+element.created_date.slice(5,-9)).length;
var obj = { "m": dates, "a": count_2015, "b":count_2016 };
我想做的是告诉 jquery 获取我的日期 (2016-10-01 07:40) 我预先将它们切片以仅重新计算年份和月份 (2016-10)。然后我获取切片结果,我想找到匹配年份和月份的结果以及 return 它找到了多少匹配项。它总是 returns 0。当我 运行 a console.log(count_2015)
我看到它 returns 结果 0 大约 40 次。
有没有人明白为什么要这样做?
您正在尝试对字符串使用 jQuery DOM 方法,但这行不通
这是一种方法,首先循环数据以创建一个对象来计算每年的每个月
var dateCounts = {}
data.d.results.forEach(function(element) {
var date = element.created_date.slice(0, 7);
var yr = date.slice(0, 4);
if (!dateCounts.hasOwnProperty(yr)) {
dateCounts[yr] = {}
}
if (!dateCounts[yr].hasOwnProperty(date)) {
dateCounts[yr][date] = 0
}
dateCounts[yr][date]++;
});
创建如下对象:
{'2015':{'2015-10':3, ....}, '2016':{'2016-10':9, ....}}
然后获取您的图表计数:
替换:
var dates = element.created_date.slice(0,-9);
var count_2015 = $(dates).find('2015'+element.created_date.slice(5,-9)).length;
var count_2016 = $(dates).find('2016'+element.created_date.slice(5,-9)).length;
有:
var date = element.created_date.slice(0, 7);
var yr = date.slice(0, 4);
var count_2015 = dateCounts['2015'][date];
var count_2016 = dateCounts['2016'][date];
这可能还可以进一步简化
我正在使用 MorrisJS 构建图表,到目前为止它已经出现了。我目前遇到 jquery 脚本的问题。我正在尝试匹配一个日期字符串并让它 return 使用 .lenght 找到的匹配数量。由于某种原因,它总是 returns 0.
我在 jsfiddle 中重现了这个问题。 https://jsfiddle.net/awo5aaqb/2/
这是目前给我带来麻烦的代码:
var dates = element.created_date.slice(0,-9);
var count_2015 = $(dates).find('2015'+element.created_date.slice(5,-9)).length;
var count_2016 = $(dates).find('2016'+element.created_date.slice(5,-9)).length;
var obj = { "m": dates, "a": count_2015, "b":count_2016 };
我想做的是告诉 jquery 获取我的日期 (2016-10-01 07:40) 我预先将它们切片以仅重新计算年份和月份 (2016-10)。然后我获取切片结果,我想找到匹配年份和月份的结果以及 return 它找到了多少匹配项。它总是 returns 0。当我 运行 a console.log(count_2015)
我看到它 returns 结果 0 大约 40 次。
有没有人明白为什么要这样做?
您正在尝试对字符串使用 jQuery DOM 方法,但这行不通
这是一种方法,首先循环数据以创建一个对象来计算每年的每个月
var dateCounts = {}
data.d.results.forEach(function(element) {
var date = element.created_date.slice(0, 7);
var yr = date.slice(0, 4);
if (!dateCounts.hasOwnProperty(yr)) {
dateCounts[yr] = {}
}
if (!dateCounts[yr].hasOwnProperty(date)) {
dateCounts[yr][date] = 0
}
dateCounts[yr][date]++;
});
创建如下对象:
{'2015':{'2015-10':3, ....}, '2016':{'2016-10':9, ....}}
然后获取您的图表计数:
替换:
var dates = element.created_date.slice(0,-9);
var count_2015 = $(dates).find('2015'+element.created_date.slice(5,-9)).length;
var count_2016 = $(dates).find('2016'+element.created_date.slice(5,-9)).length;
有:
var date = element.created_date.slice(0, 7);
var yr = date.slice(0, 4);
var count_2015 = dateCounts['2015'][date];
var count_2016 = dateCounts['2016'][date];
这可能还可以进一步简化