Javascript 在循环typescript中声明数组的数组
在我的应用程序中,我有一个日期对象,其中包含时间数组,如 控制台日志输出如下Javascript 在循环typescript中声明数组的数组,javascript,arrays,angular,typescript,Javascript,Arrays,Angular,Typescript,在我的应用程序中,我有一个日期对象,其中包含时间数组,如 控制台日志输出如下 32: { 1514160000: Array [ 1200, 1500 ], 1514764800: Array [ 1200, 1500 ], 1515369600: Array [ 1200, 1500 ], 1515974400: Array [ 700, 1200, 1500 ], 1516579200: Array [ 700, 1200, 1500 ], } 利用这些数据,我实现了一个循环,以创建一个新
32: {
1514160000: Array [ 1200, 1500 ],
1514764800: Array [ 1200, 1500 ],
1515369600: Array [ 1200, 1500 ],
1515974400: Array [ 700, 1200, 1500 ],
1516579200: Array [ 700, 1200, 1500 ],
}
利用这些数据,我实现了一个循环,以创建一个新的日期数组,其中包含时间和工作者id,如下所示(类似于此)
我已经为此编写了以下代码,其中我希望通过动态分配日期来创建日期数组,然后再次创建一个数组
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] = [];
}
}
您只是在初始化数组。无需转让或出租:
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] = [];
}
}
}
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] = [];
}
}
}
您必须赋值,而不是将其存储在变量中,让allDates[slotDate]:any=[];应为allDates[slotDate]=[];初始化此索引处的空数组。如果要将其设置为
any
,为什么要添加键入?您想要什么?是否需要任何数据类型或数组数据类型?必须赋值,而不是将其存储在变量中,让allDates[slotDate]:any=[];应为allDates[slotDate]=[];初始化此索引处的空数组。如果要将其设置为any
,为什么要添加键入?您想要什么?您想要任何数据类型或数组数据类型吗?让allDates:any[][]=[]之间有什么区别和让allDates:any=[]代码>??const x:any[][]=3
编译将失败,const x:any[][]=3
;你的代码是说变量可以采取任何类型,我的代码是说它必须是一个数组数组。我问const x:any=3
vsconst x:any[]]=[3]
??因为它和编译一样,对吗?@RameshRajendran不确定您在说什么,我已经向您解释过,我正在添加实际类型,以便编译器可以帮助您<代码>常量x:任意[][]=[3]
将无法编译,因为编译器希望该数组包含其他数组,但您正在输入一个数字,let allDates:any[]]=[]之间的区别是什么
和让allDates:any=[]代码>??const x:any[][]=3
编译将失败,const x:any[][]=3
;你的代码是说变量可以采取任何类型,我的代码是说它必须是一个数组数组。我问const x:any=3
vsconst x:any[]]=[3]
??因为它和编译一样,对吗?@RameshRajendran不确定您在说什么,我已经向您解释过,我正在添加实际类型,以便编译器可以帮助您<代码>常量x:任意[][]=[3]
将无法编译,因为编译器希望数组包含其他数组,但您正在输入一个数字。这修复了他们的编译/解析问题,但您应该警告他们,他们的代码没有使用类型系统的优点。这修复了他们的编译/解析问题,但是您应该警告他们,他们的代码没有使用类型系统的优点。