javascript - for循环在打字稿javascript中不起作用
问题描述
我有一个对象数组,其中包含从和到这样的时间
[{from:2.3,to:4.5},{from:4.5,to:6}]
现在我试图循环这个来检查我的从值这里的问题它只得到第一个我用 JavaScript 尝试过的项目它工作正常但是当我使用打字稿时它没有按预期工作它只是继续返回第一个我的数组上的元素并停止所以可能是什么问题
const freeSchedule = await ConsultFreeTime.findOne({consultantId:"123"})
.then(schedule=>{
schedule.week[day].sort((a:any,b:any ) => a.from - b.from);
let week = schedule.week;
if (week[day]) {
let timesRange = week[day];
let checkData = [];
// get number of sessions
let sessionsNumber = range / 15 - 1;
let back=0;
// the problem is on that loop
for (let i = 0; i < timesRange.length; i++){
if (timesRange[i].from === startTime.from){
startTime = timesRange[i];
back = i;
if (startTime.busy.includes(date) && appointmentCheck) {
return {
success: false,
error: " يوجد موعد في هذا الوقت "
}
}
console.log('11111',timesRange[i + sessionsNumber + 1])
if (timesRange[i+ sessionsNumber + 1]) {
// this will hold the rest time after patient duration end
let newUpdate = timesRange[i + sessionsNumber + 1];
// send the total time to the admin panal
updatedTime = {
from: startTime.from,
to: newUpdate.to,
};
console.log('updatedTime',updatedTime)
rangeHolder.push({from:newUpdate.from,to:newUpdate.to})
newUpdate.busy.push(date);
checkData.push(newUpdate.from);
}
break;
}else {
return {
success: false,
error: "هذا الوقت غير موجود "
}
}
}
while (sessionsNumber > 0) {
if (!checkData.includes(startTime.from)) {
startTime.busy.push(date);
checkData.push(startTime.from);
rangeHolder.push({from:startTime.from,to:startTime.to})
}
back += 1;
if (!timesRange[back]) {
return {
success: false,
error: "خطأ في تحديد مدة الجلسة "
}
}
if (timesRange[back].busy.includes(date) && appointmentCheck) {
return {
success: false,
error: "يوجد حجز في هذا الوقت "
}
}
if (!checkData.includes(timesRange[back].from)) {
let restDate = timesRange[back];
restDate.busy.push(date);
checkData.push(restDate.from);
rangeHolder.push({from:restDate.from,to:restDate.to})
}
sessionsNumber--;
}
}
console.log('schedule.week',schedule.week)
return schedule.week;
}).catch((err) => console.log(err));
解决方案
return
将始终停止循环的执行。看看这个答案:https ://stackoverflow.com/a/11714515/4716214
也许你想forEach
改用。
推荐阅读
- python - 将数据框加载到数据库表但保留现有的表结构
- javascript - 过滤嵌套的对象数组并使用reduce获得总数
- python - 熊猫数据框中的模型衰减
- vue.js - VueJS 应用程序中的双花括号不会显示来自 Axios fetch 的数据
- jupyter-notebook - 为什么我在 Anacodna 导航器中找不到 spyder-notebook 插件?
- java - 如何让 slf4j 通知 logback.xml?
- micropython - 如何在 MicroPython 中下载带有 urequests 的二进制文件?
- r - 如何整合多个自变量进行时间序列分析并比较R中的时间序列?
- javascript - 我将如何在伪元素上永久应用 CSS 过渡/效果
- java - 跨账户使用适用于 Java 的 AWS 开发工具包从 Amazon S3 下载文件