查找月份在JavaScript循环中出现五次的时间(日期、字符串)
Find when month appears five times in JavaScript loop (date, string)
我正在构建一个工资月计算器。如果你通常每隔一周发一次工资,大多数月份都会有两张工资,但每年有两个月会有三张工资。
我的程序按预期工作,它在列表中添加了从今天开始的每天的日期(今天是星期五)。现在我想让出现五次的同月列表项目脱颖而出,简单的着色就可以了。
这可以用第二个函数for li in ul
,然后是if li[i] string[4][6] === the next li[i][4][6]
,然后以某种方式搜索五个吗?我不确定这个逻辑会如何运作。我之所以选择[4][6],是因为在每个列表项中,月份都是三个字母的缩写,它们占据了字符串的同一部分。
如何做到这一点?
var d;
var week = 7;
function getDates() {
for (var i = 0; i < 52; i++) {
d = new Date();
d.setDate(d.getDate() + week);
$('#date').append("<li>" + d + "</li>");
week += 7;
};
}
$(document).ready(function() {
getDates();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul id="date"></ul>
一个肮脏的例子:
var d;
var week = 7;
function getDates() {
for (var i = 0; i < 52; i++) {
d = new Date();
d.setDate(d.getDate() + week);
$('#date').append("<li data-mth='"+d.getMonth()+"'>" + d + "</li>");
week += 7;
}
$('li[data-mth]').each(function(){
var $group = $('li[data-mth="'+ $(this).data("mth") +'"]');
if( $group.length > 4 ) $group.addClass("standOut");
});
}
$(getDates);
.standOut{
color:red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul id="date"></ul>
您可以将日期放在一个以月份为关键字的数组中,然后循环月份,如果该月份的计数==5,则将所有日期涂上颜色。
var d;
var week = 7;
$(document).ready(function() {
getDates();
});
function getDates() {
var months = new Array;
for (var i = 0; i < 52; i++) {
d = new Date();
d.setDate(d.getDate() + week);
var month = d.getMonth();
if(!months[month]) months[month] = new Array;
months[month].push(d);
week += 7;
};
plot_months(months);
}
function plot_months(months){
$.each(months,function(key,month){
var style = "";
if(month.length > 4) style = "color:red;";
$.each(month,function(week,date){
$('#date').append('<li style="'+style+'">' +date+ "</li>");
});
});
}`
查看此小提琴
相关文章:
- 如何在设定的时间间隔内一次只显示一个图像
- 在指定时间后多次调用Javascript中的函数
- 完整日历:如何支持一次点击和不长时间点击
- 一段时间后调用函数,但只调用一次
- 在Javascript中每五秒钟循环一次
- 计算下载时间并重复下载n次
- JavaScript变量在第二次单击事件时间后取消设置
- 如何知道窗口第一次打开的时间
- 如何使用Moment.JS检查当前时间是否在2次之间
- CreateJS:吐温JS时间轴补间多次更改属性而不链接
- ASP.Net 每五分钟弹出一次网络表单提醒
- 视频.JS - 一次在确切时间触发多个事件
- 为什么将 ng-select 替换为自定义指令会导致$http请求不会每隔一段时间发送一次
- 调用两次时间更新
- 每五次迭代后暂停循环一秒钟
- 查找月份在JavaScript循环中出现五次的时间(日期、字符串)
- Ember数据's商店承诺;t在五次测试中不起作用
- 吃五次以上的人得分增加
- 使用jQuery一次输入回显五次
- 使用setInterval()每30秒更新一次时间戳