我使用TypeScript创建数组:
private menuItems: Menu[][];
在循环之后我尝试填写如下:
this.menuItems[role].push(this.menu[i]);
结果我想得到以下内容:
[1 : [{obj}, {obj}], 2: [{obj}, {obj}], 3: [{obj}, {obj}]]
我做错了什么?
完整代码是:
public getMenuByRole(role: number): Menu[][] {
for ( let i = 0; i < this.menu.length; i++ ) {
if (this.menu[i].role === role && this.menu[i].avaliable) {
this.getTranslateMenuItem(this.menu[i].title).subscribe((translation: string) => {
this.menu[i].title = translation;
this.menuItems[role].push(this.menu[i]);
});
}
}
return this.menuItems;
}
问题是我尝试通过自定义键阵列在数组中添加新的objecti,这是不存在的
我也尝试了这个:
const obj = {};
const arr = Array();
in循环:
arr.push(this.menu[i]);
obj[role].push(arr);
答案 0 :(得分:2)
您只需在数组中创建一个数组即可获得二维数组。 我会使用一个对象。希望这就是你要找的东西
class A {
private menu: [];
constructor(){
this.menu = new Array();
for(let i = 0; i< 10; i++){
let menuItem = new Array();
menuItem.push(new B(i));
menuItem.push(new B(i+1));
this.menu.push(menuItem);
}
console.log(this.menu);
}
}
class B {
constructor(public x: int){
}
}
new A();