MongoDB事件数组提取标题时返回undefined问题求助
MongoDB事件数组提取标题时返回undefined问题求助
嘿,我看你遇到了在遍历从MongoDB API返回的事件数组时,提取标题却得到undefined的问题,咱们来一步步把它解决掉~
首先先看你给出的API返回数据,这里有个需要注意的点:返回的事件数组字段是evnets(少了一个字母e),如果你的代码里写成了data.events,那本身就会拿到undefined,这是第一个可能的坑。
再看你写的forEach循环代码,这里的核心错误是:
data.events.forEach(element => { Title = data.events.title });
data.events(或者data.evnets)是一个数组,数组本身并没有title属性,你要访问的是循环中当前的element对象的title,也就是element.title。
给你修正后的代码示例:
// 先和API返回的字段名对应,这里是evnets const eventList = data.evnets; const titles = []; // 先判断数组是否有效,避免报错 if (eventList && Array.isArray(eventList)) { eventList.forEach(element => { // 访问当前元素的title const currentTitle = element.title; titles.push(currentTitle); console.log(currentTitle); // 现在就能正确输出每个事件的标题啦 }); } console.log(titles); // 最终得到所有标题的数组
另外还有两个小建议:
- 变量名尽量遵循JS的驼峰命名规范,比如用
currentTitle而不是Title,代码可读性更好 - 加上数组存在性判断,避免因为API返回异常(比如数组为空或者字段不存在)导致的报错
这样调整后,应该就能顺利提取到每个事件的标题了~
备注:内容来源于stack exchange,提问作者xhilim
相关产品推荐
相关产品推荐

