删除数组元素并将它们填充在 javascript 中的另一个数组中
Remove array elements and populate them in another array in javascript
我试图在每次迭代中分隔每个月的日期。我有一个数组var selected=["pre populated with special dates"]
其中包含所有选定的日期。现在在此代码中,我如何修改它以从数组中删除每个月selected[]
并在每次迭代中仅使用此特定月份的日期填充thisMonthDates[]
?
var ind=start.getMonth();
var thisMonthDates = [];
while(ind<=yearDifference){
for (var k = 0; k < selectedArrayLength; k++) {
if (new Date(selected[k]).getMonth() == monthIndex[ind]) {
thisMonthDates = selected[k];
//console.log(new Date(thisMonthDates[k]));
}
}
for(var eachDt=0; eachDt<thisMonthDates.length; eachDt++) {
//code for highlighting the dates
}
ind++;
}
以下是selected[]
数组内容。循环之前thisMonthDates[]
是一个空数组。
selected = [Date 2015-01-06T19:00:00.000Z,
Date 2015-01-13T19:00:00.000Z,Date 2015-01-20T19:00:00.000Z,Date 2015-01-27T19:00:00.000Z,
Date 2015-02-03T19:00:00.000Z,Date 2015-02-10T19:00:00.000Z,Date 2015-02-17T19:00:00.000Z,
Date 2015-02-24T19:00:00.000Z,Date 2015-03-03T19:00:00.000Z,Date 2015-03-10T19:00:00.000Z,
Date 2015-03-17T19:00:00.000Z,Date 2015-03-24T19:00:00.000Z,Date 2015-03-31T19:00:00.000Z,
Date 2015-04-07T19:00:00.000Z,Date 2015-04-14T19:00:00.000Z,Date 2015-04-21T19:00:00.000Z,
Date 2015-04-28T19:00:00.000Z,Date 2015-05-05T19:00:00.000Z,Date 2015-05-12T19:00:00.000Z,
Date 2015-05-19T19:00:00.000Z];
这个循环应该可以解决问题
for (var k = 0; k < selectedArrayLength; k++) {
if (new Date(selected[k]).getMonth() == monthIndex[ind]) {
thisMonthDates.push(selected.splice(k, 1));
k--; // since we removed an element we need to decrement k
}
}
看看这个例子是否有帮助:
http://plnkr.co/edit/XbnJV0B0bO00o4iJdBtV
var selected = [];
var JANUARY = 0
var FEBRUARY = 1
var MARCH = 2;
selected.push(new Date(2015, FEBRUARY, 15));
selected.push(new Date(2015, JANUARY, 10));
selected.push(new Date(2015, FEBRUARY, 6));
selected.push(new Date(2015, MARCH, 25));
var thisMonth = [];
for (var i = 0; i < selected.length; i++) {
if (selected[i].getMonth() === FEBRUARY) {
thisMonth.push(selected[i]);
}
}
console.log(selected);
console.log(thisMonth);
和输出:
[Sun Feb 15 2015 00:00:00 GMT+1100 (AEDT), Sat Jan 10 2015 00:00:00 GMT+1100 (AEDT), Fri Feb 06 2015 00:00:00 GMT+1100 (AEDT), Wed Mar 25 2015 00:00:00 GMT+1100 (AEDT)]
[Sun Feb 15 2015 00:00:00 GMT+1100 (AEDT), Fri Feb 06 2015 00:00:00 GMT+1100 (AEDT)]
相关文章:
- 使用javascript将动态表从一个html页面打印到另一个html页
- 字符串在将其传递给另一个活动Android JavaScript时读取Null
- WebResources嵌入式资源和Javascript如何在另一个嵌入式资源中使用它们
- 多次调用另一个javascript函数中的javascript函数
- 用javascript将数据从一个窗口传递到另一个窗口
- HTML外部javascript加载另一个javascript
- 使用svg和javascript将一个类的元素动画化为另一个类
- 如何用另一个Javascript更改Javascript函数值
- 如何将一个方法延迟到另一个方法首先完成,javascript
- 使用javascript将两个文本框值相加到表中的另一个文本框中
- javascript函数将数据添加到屏幕,但随后被另一个函数覆盖
- 如何在javascript转换编码中将一个动态值从一个表单添加到另一个页面
- 如何将JavaScript变量的数据传递到另一个php页面
- 如何从另一个处理程序内部取消JavaScript事件处理程序函数的执行
- DIV怎么能像Javascript中的另一个元素一样工作呢
- 将变量值从一个javascript传递到另一个javascript
- 如何在不预定义的情况下将javascript函数传递到另一个函数中
- 选中复选框的Jquery/Javascript问题使用输入框操作将行从一个表添加到另一个表
- 在类JavaScript选择的另一个元素中选择一个标记元素
- Javascript.如何用javascript将信息发送到另一个网站