在循环打字稿中声明数组数组

问题描述 投票:0回答:2

在我的应用程序上,我有一个日期对象,其中包含时间数组,如控制台日志输出如下

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

我该怎么做 ?

javascript arrays angular typescript
2个回答
2
投票

您只是初始化数组。没有赋值或需要let:

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

1
投票

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] = [];
      }
    }
  }
© www.soinside.com 2019 - 2024. All rights reserved.