js对象undefined根据key值取value的一个坑
背景是这样的,
//处理导师团头像数组
fixTutorArray = (tutorsArr) => {
// 下面两行是修复报错代码
if(tutorsArr.length == 0)
return tutorsArr;
var lastTutor = tutorsArr[tutorsArr.length - 1];
if (lastTutor.imgUrl !== checkMoreTutorsUrl) {
tutorsArr.push({ imgUrl: checkMoreTutorsUrl});
}
return tutorsArr;
}
代码中tutorsArr是一个数组,里面是{imgUrl:'http://www.xxx.com}类似的对象。
我的问题是调用lastTutor.imgUrl 竟然报错了。
纠结了好久,这么科学的写法为什么就报错了,无论怎么折腾都提示没有property imageUrl,恼火儿啊...
打断点发现这个方法会走多次,而前几次传入的tutorsArr是空数组,而此时取到的lastTutor是undefined值,此时分析可能就是因为lastTutor是undefined导致的,加上修复代码之后
if(tutorsArr.length == 0)
return tutorsArr;
问题完美解决。真的是一步一个坑啊...