簡體   English   中英

在循環打字稿中聲明數組的數組

[英]Declare array of array in loop typescript

在我的應用程序上,我有一個日期對象,其中包含時間數組,例如控制台日志輸出如下

32: {
1514160000: Array [ 1200, 1500 ],
1514764800: Array [ 1200, 1500 ],
1515369600: Array [ 1200, 1500 ],
1515974400: Array [ 700, 1200, 1500 ],
1516579200: Array [ 700, 1200, 1500 ],
}

有了這些數據,我實現了循環以創建一個新的日期數組,其中包含時間和工作人員ID,如下所示(類似於此)

1514160000 :[
1200 : [32,40,56],
1500 : [32,40],
],
1514764800: [
1200 : [32,40,56],
1500 : [32,40],
]

我為此編寫了以下代碼,其中我想通過動態分配日期來創建日期數組,然后再次創建一個數組。

let allDates :any = [];
      for(let pid in this.allAvailableProviders)
      {
        console.log(pid);
        for(let slotDate in this.allAvailableProviders[pid]){
          if(!Array.isArray(allDates[slotDate])){
            let allDates[slotDate] :any = [];
          }
        }
      }

其中allAvailableProviders是對象

它給我ng服務以下錯誤

'=' expected

我該怎么做 ?

您正在初始化數組。 沒有分配或需要讓:

    for(let slotDate in this.allAvailableProviders[pid]){
      if(!Array.isArray(allDates[slotDate])){
        allDates[slotDate] = [];
      }
    }

let語句后跟變量名,而不是表達式。

您應該只將外部數組定義為正確的類型,而不是any 您知道這是一個數組數組。

  let allDates: any[][] = [];
  for(let pid in this.allAvailableProviders)
  {
    console.log(pid);
    for(let slotDate in this.allAvailableProviders[pid]){
      if(!Array.isArray(allDates[slotDate])){
        // You'd get an error if you assigned something that is not an array.
        // because you specified the type correctly
        allDates[slotDate] = [];
      }
    }
  }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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