[英]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.