Map Reduce脚本报错:无法读取undefined的memberItem属性求助
排查思路:TypeError: Cannot read property "memberItem" from undefined
核心问题:JSON结构理解偏差
你提供的JSON数据中,itemid.memberitem是values对象下的独立键名(带点的字符串键),而非itemid对象的子属性。你的代码searchResult.values.itemid.memberitem会先访问values.itemid(其值为字符串"Assembly"),再试图读取字符串的memberitem属性,这必然抛出错误——字符串不存在该属性。
解决步骤
修正字段访问方式
使用方括号语法直接访问带点的键名:var memberItem = searchResult.values['itemid.memberitem'];添加存在性校验
为避免其他潜在的未定义问题,建议逐层校验对象存在性:
若NetSuite环境支持可选链操作符:var memberItem = ''; if (searchResult?.values?.['itemid.memberitem']) { memberItem = searchResult.values['itemid.memberitem']; }若不支持可选链,用传统条件判断:
var memberItem = ''; if (searchResult && searchResult.values && searchResult.values['itemid.memberitem']) { memberItem = searchResult.values['itemid.memberitem']; }确认字段键名大小写
检查JSON中的键名大小写:你提供的JSON里是itemid.memberitem(全小写后缀),但错误提示提到memberItem(大写I),需确保代码中使用的键名与返回的JSON完全一致,NetSuite对键名大小写敏感。
内容的提问来源于stack exchange,提问作者Jbigger
相关产品推荐
相关产品推荐

