Javascript 在Firebase对象上使用Object.keys()而不是.length
如何使用Object.keys()更正此代码段?当注释ID是数字时,代码工作正常。现在,如何使用firebase自动生成的ID (数据结构如下)Javascript 在Firebase对象上使用Object.keys()而不是.length,javascript,database,typescript,Javascript,Database,Typescript,如何使用Object.keys()更正此代码段?当注释ID是数字时,代码工作正常。现在,如何使用firebase自动生成的ID (数据结构如下) ngOnInit(){ 这个.route.params .pipe(switchMap((params:params)=>this.dishservice.getDish(params['id'])) .订阅(dish=>{ 这道菜 this.favorite=this.favoriteService.isFavorite(this.dish.id)
ngOnInit(){
这个.route.params
.pipe(switchMap((params:params)=>this.dishservice.getDish(params['id']))
.订阅(dish=>{
这道菜
this.favorite=this.favoriteService.isFavorite(this.dish.id);
//计算评分的平均值并提供评论的数量
this.numcomments=this.dish.comments.length;
设total=0;
this.dish.comments.forEach(comment=>total+=comment.rating);
this.avgstars=(总计/this.numcomments).toFixed(2);
},
errmess=>this.errmess=errmess);
}
试试这个
const commentIds = Object.keys(this.dish.comments);
this.numcomments = commentIds.length;
let total = 0;
commentIds.forEach(commentId => total += this.dish.comments[commentId].rating);
this.avgstars = (total/this.numcomments).toFixed(2);
如何更正代码段?从
console.log(Object.keys(this.dish.comments))
开始。还有Object.values()和Object.entries()。@Chris G那么呢?我在这里呆了一会儿。我会通知你的通知。如果你能重构那段代码。this.dish.comments
是对象还是数组?那么,输出是什么?