Apps Script报TypeError求助:无法读取undefined的'name'属性
问题分析与修复方案
你的问题出在没有先判断project_manager本身是否存在——如果API返回的某个项目里project_manager是null或者undefined,直接访问.name会直接抛出TypeError,这就是你修改后脚本崩溃的原因。
修正后的代码
你需要先检查project_manager是否存在,再去访问它的name属性,推荐用短路求值简化判断:
const pmName = jsonObject.data[i].project_manager?.name || ""; arrayProjectManagerName.push([pmName]);
或者用传统的多层判断(兼容更旧的环境):
let pmName = ""; if (jsonObject.data[i].project_manager && jsonObject.data[i].project_manager.name) { pmName = jsonObject.data[i].project_manager.name; } arrayProjectManagerName.push([pmName]);
为什么你的修改会失败
你原来的代码直接写jsonObject.data[i].project_manager.name === undefined,如果project_manager本身是null,这行代码会先尝试读取null.name,直接触发错误,根本走不到判断逻辑里。
额外建议
可以在循环里加个日志,方便排查这类问题:
console.log(`项目${i}的project_manager数据:`, jsonObject.data[i].project_manager);
这样能直观看到哪些项目的项目经理字段有异常。
内容的提问来源于stack exchange,提问作者Bart
相关产品推荐
相关产品推荐

