如何优化JS代码生成element对象并移除输出中的空值属性
问题分析
你现有代码的核心问题是硬编码写入了accountId、accountText两个属性,当账户对象不存在accountText时,会生成值为undefined的冗余无效属性,和预期输出不符。
改写后的高效代码
var users = { "accounts": [{ "accountId": "210001" }, { "accountId": "90000", "accountText": "Sample" }, { "accountId": "4618891", "accountText": "Test" } ] }; // 直接用map生成目标数组,避免额外临时变量 const element = { L: users.accounts.map(user => { // 先写入必有的accountId属性 const M = { accountId: { S: user.accountId } } // 仅当accountText存在且非空时追加属性 if (user.accountText != null) { M.accountText = { S: user.accountText } } return { M } }) } console.log(JSON.stringify(element, null, 2))
代码说明
- 用数组
map方法替代原有的forEach+手动push逻辑,写法更简洁,不需要额外声明obj、cart等临时变量 - 新增属性存在性判断,只有
accountText有有效值时才会写入最终对象,自动过滤空值属性 - 运行效率和原有代码一致,没有额外性能开销,输出完全符合预期
内容的提问来源于stack exchange,提问作者user4324324
相关产品推荐
相关产品推荐

