码迷,mamicode.com
首页 > 其他好文 > 详细

Profile Lookup 任务详解

时间:2017-09-24 12:50:16      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:运行   return语句   字符串类型   def   判断   class   返回   执行   size   

昨天刷题卡在这了,觉得很简单一个问题啊,为什么不对呢,甚至还怀疑过有bug。然后百度找答案,搜到第一个兄弟的答案,我发现了他的两个错误,因此找到了我的原因。

建议小伙伴自己思考一遍,做一遍再来看该文章。

 

相信你已经做过一遍了,如果没做对,请检查以下两个问题:

1.你的代码运行后是否一直显示 “No such contact”?

  如果是,那要仔细看啦,原因在于你把  return "No such contact";  这条语句放到for循环里面了!for循环执行第一遍的时候 如果运气不好都不符合那就会返回这个字符串,函数也就结束了,但是,这个时候只是遍历了对象数组的第一个元素,也就是说,这个函数的作用只是判断第一个对象是否满足要求...这不是我们所希望的,我们希望它遍历所有的对象...所以应该等它都遍历完(即 放到for循环外面),如果不满足返回"No such contact".

 

2.你的代码运行后是否一直显示undefined?

  如果是,你这问题就简单多了。自习看看你的return语句是否这样写的 :  return contacts[i].prop;   这样写也没错啊? 没错你个大头鬼啊! prop是形参,对应的实参题目中给的是字符串类型,你见过 点(.) 运算符后面接字符串的啊? 所以正确写法: return contacts[i].[prop];  

 

完整代码如下:

function lookUp(firstName,prop){
  for(var i=0;i<contacts.length;i++){
    if(firstName==contacts[i]["firstName"]){
        if(contacts[i].hasOwnProperty(prop)){
            return contacts[i][prop];           
        }
        else{
          return "No such property";
        }
    }
    }
      return "No such contact";

顺便说一句,建议 即使分支语句的语句体只有一条语句时,也要加上大括号。

 

这个问题促使了我开通这个博客...

目前,前端大三狗,爱前端,爱后端,爱爬虫...

 

Profile Lookup 任务详解

标签:运行   return语句   字符串类型   def   判断   class   返回   执行   size   

原文地址:http://www.cnblogs.com/none1997/p/7586606.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!