成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

2017.02.13 JS學(xué)習(xí)

terasum / 1375人閱讀

摘要:今天在第步上花了個(gè)多小時(shí),好在最后完成了,現(xiàn)把問題和記錄下來。循環(huán)還要多多練習(xí)。前提是之前的判斷中的其他情況會(huì)

今天在 FreeCodeCamp 第215步上花了1個(gè)多小時(shí),好在最后完成了,現(xiàn)把問題和code記錄下來。

題目:

Profile Lookup
We have an array of objects representing different people in our contacts lists.
A lookUpProfile function that takes firstName and a property (prop) as arguments has been pre-written for you.
The function should check if firstName is an actual contact"s firstName and the given property (prop) is a property of that contact.
If both are true, then return the "value" of that property.
If firstName does not correspond to any contacts then return "No such contact"
If prop does not correspond to any valid properties then return "No such property"

//Setup
var contacts = [
    {
        "firstName": "Akira",
        "lastName": "Laine",
        "number": "0543236543",
        "likes": ["Pizza", "Coding", "Brownie Points"]
    },
    {
        "firstName": "Harry",
        "lastName": "Potter",
        "number": "0994372684",
        "likes": ["Hogwarts", "Magic", "Hagrid"]
    },
    {
        "firstName": "Sherlock",
        "lastName": "Holmes",
        "number": "0487345643",
        "likes": ["Intriguing Cases", "Violin"]
    },
    {
        "firstName": "Kristian",
        "lastName": "Vos",
        "number": "unknown",
        "likes": ["Javascript", "Gaming", "Foxes"]
    }
];

function lookUpProfile(firstName, prop){
// Only change code below this line

// Only change code above this line
}

// Change these values to test your function
lookUpProfile("Akira", "likes");
lookUpProfile("Kristian", "lastName");
lookUpProfile("Sherlock", "likes");
lookUpProfile("Harry", "likes");
lookUpProfile("Bob", "likes");
lookUpProfile("Bob", "address");
遇到問題:

一開始把firstName和prop的判斷寫在了一個(gè)for循環(huán)下,結(jié)果導(dǎo)致如果firstName不是在第一個(gè)object中,則直接返回"No such contact",不再繼續(xù)查找數(shù)組。

解決方法:

先將所有firstName存入一個(gè)數(shù)組,判斷firstName是否存在,如果不存在,則直接返回"No such contact",如果存在,則再引入for循環(huán),在for循環(huán)中判斷是否存在prop.

function lookUpProfile(firstName, prop){
// Only change code below this line
//將所有firstName存入數(shù)組
  var storeFirstName = []; 
for (var i = 0; i < contacts.length; i++){
  
    storeFirstName.push(contacts[i].firstName); 

} 
//創(chuàng)建方法,用來判斷數(shù)組中是否存在某個(gè)值     
  function contains(arr, obj) {  
    var i = 0;  
    while (i < arr.length) {  
        if (arr[i] === obj) {  
          
            return true;
        }
      i++;
    }  
    return false;  
}       

  
if (contains(storeFirstName, firstName))//firstName 存在于contacts中
  {
    for (var j = 0; j < contacts.length; j++){
      
      if(contacts[j].firstName === firstName) { //找到目標(biāo)firstName所在的object            
        if (contacts[j].hasOwnProperty(prop)){ //object中存在目標(biāo)prop
        
          return contacts[j][prop];
          
        }
        else {
          
          return "No such property"; //object中不存在目標(biāo)prop
        }
      }
     
      
    }
  }
  else {  //firstName 不存在于contacts中
    return "No such contact"; 
  }
// Only change code above this line
}
心得:

寫文章先在本地寫,然后再復(fù)制到網(wǎng)頁中(不小心按到返回,也是沒誰了,多花了20分鐘重寫)。

循環(huán)還要多多練習(xí)。

與object.hasOwnProperty不同,數(shù)組需要判斷是否存在值時(shí),可引入 contains 方法:

function contains(arr, obj) {  
        var i = 0;  
        while (i < arr.length) {  
            if (arr[i] === obj) {  
              
                return true;
            }
          i++;
        }  
        return false;  
    }
2017.02.14 How stupid am I !

今早起來才想起來,把return “No such contact”放在 for循環(huán)外,等for循環(huán)結(jié)束找不到firstName,會(huì)直接返回 “No such contact”.

function lookUpProfile(firstName, prop){
// Only change code below this line
 for( var i = 0; i < contacts.length; i++) {
   
   if(contacts[i].firstName === firstName) {
     
     if(contacts[i].hasOwnProperty(prop)) {
       
       return contacts[i][prop];
     }
     else {
       
       return "No such property";
     }
   }
 
 }
  return "No such contact";
// Only change code above this line
}

nested 判斷中,最外部的判斷中false的情況,可以直接在最后。前提是之前的判斷中的其他情況會(huì)terminate function.

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/81499.html

相關(guān)文章

  • Luxon 初步介紹(Moment 團(tuán)隊(duì)日期另一個(gè)類庫)

    摘要:我不是的深度用戶只是日常會(huì)遇到一些時(shí)間格式化的需求之前用的都是不過對(duì)的感到有些不舒服同事介紹過里邊用不可變數(shù)據(jù)的風(fēng)格設(shè)計(jì)的所以就試試上星星很多請(qǐng)放心食用是項(xiàng)目的某個(gè)維護(hù)者開發(fā)的按照他個(gè)人想法進(jìn)行了改進(jìn)除了不可變性使用的工具做了更新也嘗試到時(shí) 我不是 Moment 的深度用戶, 只是日常會(huì)遇到一些時(shí)間格式化的需求,之前用的都是 Moment, 不過對(duì) Moment 的 mutable A...

    stormzhang 評(píng)論0 收藏0
  • Javascript 注釋規(guī)范

    摘要:代碼注釋規(guī)范一語法注釋的說明語法寫在注釋塊第一行這是注釋的說明切換音頻播放狀態(tài)播放停止省略其它代碼標(biāo)簽語法標(biāo)簽的說明語法說明文字學(xué)生學(xué)生的名字類型語法可與標(biāo)簽結(jié)合使用,如必傳參數(shù)可選參數(shù)語法可與標(biāo)簽結(jié)合使用,如必傳參數(shù)可選參數(shù)參數(shù)有 Javascript 代碼注釋規(guī)范 一、語法 1. 注釋的說明 語法:寫在注釋塊第一行 /** * events-function(這是注釋的說明) ...

    ChanceWong 評(píng)論0 收藏0
  • 初學(xué)者學(xué)習(xí)JAVASCRIPT很吃力怎么辦?到底該如何學(xué)習(xí)JS

    摘要:給初學(xué)者的印象總是那么的雜而亂,相信很多初學(xué)者都在找輕松學(xué)習(xí)的途徑。通常學(xué)了很久的基礎(chǔ)之后,變量函數(shù)對(duì)象你也都略知一二,但一到公司開發(fā)項(xiàng)目的時(shí)候,卻又難以下手。 Js給初學(xué)者的印象總是那么的雜而亂,相信很多初學(xué)者都在找輕松學(xué)習(xí)Js的途徑。在這里給大家總結(jié)一些學(xué)習(xí)Js的經(jīng)驗(yàn),希望能給后來的學(xué)習(xí)者探索出一條輕松學(xué)習(xí)Js之路。Js給人那種感覺的原因多半是因?yàn)樗缦碌奶攸c(diǎn):A:本身知識(shí)很抽象、...

    WrBug 評(píng)論0 收藏0
  • 學(xué)習(xí) Next.js: 入門

    摘要:原始文檔在現(xiàn)在搬過來學(xué)習(xí)入門學(xué)習(xí)頁面之間的導(dǎo)航學(xué)習(xí)使用共享組件學(xué)習(xí)創(chuàng)建動(dòng)態(tài)內(nèi)容學(xué)習(xí)使用路由掩碼創(chuàng)建干凈的學(xué)習(xí)干凈的服務(wù)器支持學(xué)習(xí)獲取數(shù)據(jù)學(xué)習(xí)部署哪位分高的幫忙創(chuàng)建一個(gè)的標(biāo)簽謝謝現(xiàn)暫時(shí)放在標(biāo)簽下面了新建文章有時(shí)間限制一會(huì)全部發(fā)上來這是最近兩天 原始文檔在 https://github.com/developerw... 現(xiàn)在搬過來. 學(xué)習(xí) Next.js: 入門學(xué)習(xí) Next.js: ...

    Miracle 評(píng)論0 收藏0
  • 學(xué)習(xí) Next.js: 創(chuàng)建動(dòng)態(tài)內(nèi)容

    摘要:原始文檔在現(xiàn)在搬過來學(xué)習(xí)入門學(xué)習(xí)頁面之間的導(dǎo)航學(xué)習(xí)使用共享組件學(xué)習(xí)創(chuàng)建動(dòng)態(tài)內(nèi)容學(xué)習(xí)使用路由掩碼創(chuàng)建干凈的學(xué)習(xí)干凈的服務(wù)器支持學(xué)習(xí)獲取數(shù)據(jù)學(xué)習(xí)部署創(chuàng)建動(dòng)態(tài)頁面現(xiàn)在我們知道了如何使用多個(gè)頁面創(chuàng)建一個(gè)基本的應(yīng)用程序?yàn)榱藙?chuàng)建頁面我們需要在磁盤上創(chuàng)建 原始文檔在 https://github.com/developerw... 現(xiàn)在搬過來. 學(xué)習(xí) Next.js: 入門學(xué)習(xí) Next.js: ...

    caohaoyu 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<