如何为JavaScript对象的属性添加新字段?(对象数组转换场景)
嘿,这个调整其实很直观,我给你一步步说怎么改:
首先先复盘下你原来的核心逻辑大概是这样的(我根据你的描述还原的):
const ratings = {}; for (const key in result) { const objReviewee = result[key]; const reviewee = /* 这里是你处理reviewee键的逻辑,比如提取某个字段或者格式化字符串 */; // 原来的赋值是直接把avgrating作为值 ratings[reviewee] = objReviewee.avgrating; }
现在要让每个键对应一个包含avgrating和status的对象,只需要把赋值的单个值改成一个对象字面量就行:
const ratings = {}; for (const key in result) { const objReviewee = result[key]; const reviewee = /* 你的reviewee处理逻辑不变 */; // 修改这里,把单个值换成包含两个属性的对象 ratings[reviewee] = { avgrating: objReviewee.avgrating, status: 0 // 这里如果是固定值就写0,要是有动态判断逻辑可以替换,比如根据评分设状态 }; }
举个动态status的例子,如果想根据avgrating来设置status(比如评分≥4设为1,否则0),可以这么写:
ratings[reviewee] = { avgrating: objReviewee.avgrating, status: objReviewee.avgrating >= 4 ? 1 : 0 };
这样处理后,ratings里的每个键就会像你例子里的testtest1:{avgrating:4,status:0}一样,是包含两个属性的对象啦~
内容的提问来源于stack exchange,提问作者Jennica
相关产品推荐
相关产品推荐

