Arrays 从对象数组获取数据
从对象数组获取数据时遇到问题。。我的数据数组是这样的 我只想获取列表Arrays 从对象数组获取数据,arrays,angular,typescript,Arrays,Angular,Typescript,从对象数组获取数据时遇到问题。。我的数据数组是这样的 我只想获取列表menuCode 组成部分 ngOnInit() { this.commonService.menuList$.subscribe(data => { this.menuCode = data; console.log(this.menuCode) }) } 如果我添加这样的代码this.menuCode=data['menuCode']我得到了这个错误TypeError
menuCode
组成部分
ngOnInit() {
this.commonService.menuList$.subscribe(data => {
this.menuCode = data;
console.log(this.menuCode)
})
}
如果我添加这样的代码this.menuCode=data['menuCode']
我得到了这个错误TypeError:无法读取null的属性'menuCode'。我应该怎么做才能得到menuCode
list
编辑
服务
_getMenu() {
this.loading.present();
this.auth.getMenu()
.pipe(take(1))
.subscribe(
res => {
this.menuList$.next(res['menuList']);
this.loading.dismiss();
},
error => {
this.menuList$.next([]);
this.loading.dismiss();
}
)
}
您的res对象是一个对象数组。因此执行res['menuCode']
将返回null,因为它在数组中不存在。因此,如果您想获得菜单代码列表,可以使用map()
函数
_getMenu() {
this.loading.present();
this.auth.getMenu()
.pipe(take(1))
.subscribe(
res => {
this.menuList$.next(res.map(r => r.menuCode)); // here
this.loading.dismiss();
},
error => {
this.menuList$.next([]);
this.loading.dismiss();
}
)
}
你能添加commonService.menuList$logic吗?以及httpClient.get/post/delete/。。请问你的要求是什么?这可能是一个HttpEvent ping事件,而不是实际响应。在继续此假设之前,我希望先查看您的代码。同时尝试将数据记录到控制台,以查看您是否确实得到了一些东西。我已添加commonService.menuList$,如您所愿..谢谢您的回答。。但是我得到了一个错误。属性“map”在类型“Object”上不存在。
您问题中的控制台图片,是您的console.log(this.menuCode)
?如果不是,这是从哪里来的?是的,是真的…我使用console.log(this.menuCode)
像这样修改后,它工作this.menuCodeList$.next(res['menuList'].map(r=>r.menuCode))代码>