我想重构我从php中检索到的数组,以使其可用于我的ngFor。
目前我的数组包含~2700个元素,其中包含一个包含以下数据的对象:
name: "Someone"
shift: 3
week: 1
department_name: "somedepartment"
我想将其更改为array-> week-> shift-> department.name
在JS中这很容易,但在Typescript中我无法使它工作,我的实际代码如下:
test(data): void{
//data contains the actual array
let user = [];
for (let entry of data){
console.log(entry['week']);
console.log(entry['shift']);
console.log(entry['department_name']);
user[entry['week']][entry['shift']][entry['department_name']] = entry;
}
console.log(user);}
console.log返回前3个值:1,3和#34; departmentx"
然后返回:
错误错误:未捕获(承诺):TypeError:无法读取属性' 3'未定义的 TypeError:无法读取属性' 3'未定义的
我已经读过,我必须先设置数组的大小,但每次都会不同,之后除了存储的名称之外还会有更多的信息。
答案 0 :(得分:2)
如果我理解你想要更改数组中元素的顺序,对吧?
这应该有效:
let newArray = [];
for (let entry in data) {
let currentObj = {
[entry.week]: {
[entry.shift]: entry.department_name
}
};
newArray.push(currentObj);
}
console.log(JSON.stringify(newArray));
输出结果如下:
newArray = [
1: {
3: "somedepartmentX"
},
2: {
4: "somedepartmentY",
},
3: {
5: "somedepartmentZ",
},
];