Node.js创建新JSON对象时无法打印vehQ对象的问题求助
问题说明
编程新手遇到执行异常:可正常打印输出包含10个项的profile JSON对象,但无法打印输出预期仅包含3个字段的vehQ对象,需确认代码编写是否有误。
原始代码片段
let profile = await this.getProfileDetails(params) console.log(profile) var vehQ = {} if (profile ) { vehQ["profileID"] = profile[0].profileID vehQ["regNumber"] = profile[0].regNumber vehQ["compatibility"] = profile[0].compatibility console.log(vehQ)
故障原因排查
- 数据结构判断错误:代码默认
profile是数组类型,通过下标0取首项,但如果getProfileDetails返回的profile是单个对象而非数组,profile[0]取值为undefined,后续读取属性时会直接抛出类型错误,阻断执行,无法走到打印vehQ的逻辑。 - 边界场景未覆盖:如果
profile是空数组,profile[0]同样为undefined,读取属性时触发TypeError: Cannot read properties of undefined报错,代码中断。 - 语法不完整:贴出的代码片段中
if (profile)对应的花括号未闭合,实际运行时会直接抛出语法错误,脚本无法正常执行。
修复参考代码
let profile = await this.getProfileDetails(params) console.log(profile) const vehQ = {} // 补充类型和长度校验,避免非法取值报错 if (Array.isArray(profile) && profile.length > 0) { const targetItem = profile[0] vehQ["profileID"] = targetItem.profileID vehQ["regNumber"] = targetItem.regNumber vehQ["compatibility"] = targetItem.compatibility console.log(vehQ) }
内容的提问来源于stack exchange,提问作者TheDeveloperDude
相关产品推荐
相关产品推荐

