繁体   English   中英

Javascript - 这个函数和循环有什么问题?

[英]Javascript - What is wrong with this function and loop?

几天前我开始学习编码,我的第一个程序几乎完成了。 但是,我现在最后遇到了一个问题,我似乎无法弄清楚自己出了什么问题。

该程序应该帮助我按工作日和一天中的时间对一堆日期进行排序。 日期写为“YYMMDD-”,然后是一天中的时间(仅小时),例如“170109-06”。

我有我想在数组 ( time ) 中排序的所有日期,并且以下函数和循环应该删除所有与特定年份不匹配的日期。

变量说明:

time - 由日期和时间组成的数组(都是相同的月份但不同的年份。(例如 ["161102-03", "151127-11"]

yearDate - 将保留在数组中的日期的前 4 个数字。

function checkDate (date) {
    var yearMonth = date.slice(0, 4);
    var index = time.indexOf(date)
    if (yearMonth != yearDate) {
        time.splice(index, index + 1);
    } 
    else {
    }
}

for (var i = 0; i <= time.length; i++) {
    checkDate(time[i]);
}

这段代码似乎偶尔工作,但有时数组中的一些字符串在应该被删除时留在那里,所以代码显然有问题。

我希望你能理解我的意思。 我确实意识到这篇文章最后有点毛茸茸的。

标准错误。 您在迭代数组时从数组中删除项目。 每次删除一个项目时,递增迭代器将使您跳过与已删除元素相邻的下一个元素。

倒退:

for (var i = time.length - 1; i >= 0; i--) {
    checkDate(time[i]);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM