动态创建数组:基于totalEvents构建请求对象的技术问询
优化请求对象构建的实现方案
嘿,看起来你已经找对了方向!你的代码确实能将this.totalEvents转换成你期望的请求格式,不过我们可以用更简洁、更符合现代JS风格的方式来实现,同时保证输出完全匹配你的需求。
你的原始实现代码
let Obj = []; // 补充:这里需要先初始化数组避免未定义错误 for (let i = 0; i < this.totalEvents.length; i++) { let j = { "events": this.totalEvents[i].events, "proposalNo": this.totalEvents[i].proposalNo } Obj.push(j); } let requestObj = JSON.stringify(Obj)
更简洁的优化实现
我们可以用Array.map()方法替代for循环,代码更紧凑且可读性更强:
// 直接生成目标数组并转成JSON字符串 const requestObj = JSON.stringify( this.totalEvents.map(item => ({ events: item.events, proposalNo: item.proposalNo })) );
匹配示例的数字类型proposalNo(可选)
如果你的期望输出中proposalNo是数字类型(示例里的proposalNo为数字),而原始数据里是字符串格式,可以在转换时做类型转换:
const requestObj = JSON.stringify( this.totalEvents.map(item => ({ events: item.events, proposalNo: Number(item.proposalNo) // 将字符串转为数字 })) );
输出效果验证
假设你的this.totalEvents是:
[{proposalNo: "1524472817264", events: [1524053212499]}]
优化后的代码会生成如下JSON(和你的示例格式完全一致):
[ { "events": [1524053212499], "proposalNo": 1524472817264 } ]
内容的提问来源于stack exchange,提问作者uday adidham
相关产品推荐
相关产品推荐

