繁体   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