gpt4 book ai didi

javascript - JS如何初始化复杂的数组?

转载 作者:行者123 更新时间:2023-12-03 03:30:14 24 4
gpt4 key购买 nike

我使用 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();

内循环:

arr.push(this.menu[i]);
obj[role].push(arr);

最佳答案

只需在数组中创建数组即可获得二维数组。不过我会使用一个对象。希望这就是您正在寻找的

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();

https://jsfiddle.net/64r04pp2/

关于javascript - JS如何初始化复杂的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46134464/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com