[英]for loop not working in typescript javascript
我有一個對象數組,其中包含從和到這樣的時間
[{from:2.3,to:4.5},{from:4.5,to:6}]
現在我試圖循環這個來檢查我的值這里的問題它只得到第一個我用 JavaScript 嘗試過的項目它工作正常但是當我使用 typescript 它沒有按預期工作它只是繼續返回第一個我的數組上的元素並停止所以可能是什么問題
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
代替。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.