簡體   English   中英

for 循環在 typescript javascript 中不起作用

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM