为何Google Apps Script中.map函数返回含undefined的数组?
问题解决:Google Apps Script映射对象返回undefined
问题原因
你的代码里map回调中的return语句后直接换行了,JavaScript的自动分号插入机制会在return后自动添加分号,导致后续的[user["department_text"]]不会被返回,最终得到全是undefined的数组。
修正后的代码
function GETMYJSONDATA() { var options = { "method": "get", "headers": { "Authorization": "Bearer REDACTED" } }; const url = "REDACTED"; const res = UrlFetchApp.fetch(url, options); const dataAsText = res.getContentText(); const data = JSON.parse(dataAsText); const results = data.response.users.map(user => { return [user["department_text"]]; // 将数组和return放在同一行,避免自动分号插入 }); return results; }
额外排查建议
- 确认API返回的
data.response.users中的每个user对象确实包含department_text字段,避免因字段不存在导致返回undefined - 可以在
map回调中添加日志快速排查:const results = data.response.users.map(user => { console.log(user); // 打印每个user对象,检查字段是否存在 return [user["department_text"]]; });
内容的提问来源于stack exchange,提问作者Ryan
相关产品推荐
相关产品推荐

