js对象undefined根据key值取value的一个坑

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 竟然报错了。

image.png

纠结了好久,这么科学的写法为什么就报错了,无论怎么折腾都提示没有property imageUrl,恼火儿啊...
打断点发现这个方法会走多次,而前几次传入的tutorsArr是空数组,而此时取到的lastTutor是undefined值,此时分析可能就是因为lastTutor是undefined导致的,加上修复代码之后

if(tutorsArr.length == 0)
    return tutorsArr;

问题完美解决。真的是一步一个坑啊...

你可能感兴趣的:(js对象undefined根据key值取value的一个坑)