在我的angular 4应用程序中,我有一个名为allAvailableProviders的对象,如下所示 其中71,72是提供者ID,然后是时间戳,然后是24小时格式的时间
71: {…}
1514678400: […]
0: 800
1: 1300
1515283200: […]
0: 800
1: 1300
1515888000: […]
0: 800
1: 1300
72: {…}
1514678400: […]
0: 800
1: 1300
1515283200: […]
0: 800
1: 1300
1515888000: […]
0: 800
1: 1300
我写了一个函数来创建一个带有上面对象的新数组,如下所示
1514678400: []
800: []
0: 71
1: 72
1300: []
0: 71
1: 73
以下是我的代码
let allDates = [];
for(let pid in this.allAvailableProviders)
{
for(let slotDate in this.allAvailableProviders[pid]){
if(!Array.isArray(allDates[slotDate])){
allDates[slotDate] = new Array();
}
for(let spots in this.allAvailableProviders[pid][slotDate]){
if(!Array.isArray(allDates[slotDate][spots])){
allDates[slotDate][spots] = new Array();
}
allDates[slotDate][spots].push(pid);
}
}
}
console.log(allDates)
在控制台上记录其显示以下输出
Array [ <10 empty slots>, … ]
[…]
[0…99999999]
[100000000…199999999]
[200000000…299999999]
[300000000…399999999]
[400000000…499999999]
[500000000…599999999]
[600000000…699999999]
[700000000…799999999]
我不确定这里发生了什么,但是当我尝试使用jquery构建它时,它可以正常工作但不能使用javascript和typescript
有没有办法获得所需的输出?
答案 0 :(得分:1)
我只编译了你的代码,但看起来像是:
for(let pid in this.allAvailableProviders)
应该是:
for(let pid of this.allAvailableProviders)
在JavaScript / TypeScript中,for
- of
循环是用于迭代数组中项目的循环。 for
- in
循环迭代键(在数组的情况下,索引)......
var arr = ['A', 'B', 'C', 'D'];
// 0, 1, 2, 3
for (let item in arr) {
console.log(item);
}
// A, B, C, D
for (let item of arr) {
console.log(item);
}