2016-08-24 9 views
0

これはフリーコードキャンプでの割り当てです。これは私のコードです。ループは最初の反復が0で停止します。それはforループの最初の反復で真ですが、どのようにしてこのコードをループさせることができますか?オブジェクトの全体のプロパティと値の配列をチェックしますか?forループは、オブジェクトの長さ全体を実行しませんか?

//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) { 
    debugger; 

    // Only change code below this line 
    for (var x = 0; x < contacts.length; x++) { 
     if (!contacts[x].hasOwnProperty(prop)) { 
      return 'No such property'; 
     } 

     if (contacts[x].firstName != firstName) { 
      return 'No such contact'; 
     } 

     if (contacts[x].hasOwnProperty(prop) && contacts[x].firstName === firstName) { 
      return prop; 
     } 
    } 
    // Only change code above this line 
} 

// Change these values to test your function 
lookUpProfile("Harry", "likes"); 
+1

をまあ、ちょうどそのようなプロパティを返さない停止しないと、そのような必要に応じてそのテキストに連絡して保存してください。 – juvian

+0

最初の戻り関数が終了しました –

答えて

2

ループ内では、一致するとreturnにする必要があります。そうしないと、継続すべきである:

を使用すると、ループの終わりに達すると、それはマッチがなかったこと、そしてあなたが特定のエラー値を返すことができます。

function lookUpProfile(firstName, prop) { 
    debugger; 

    // Only change code below this line 
    for (var x = 0; x < contacts.length; x++) { 
     if (contacts[x].hasOwnProperty(prop) && contacts[x].firstName === firstName) { 
      return prop; 
     } 
    } 
    return 'No such contact'; 
    // Only change code above this line 
} 
+0

感謝しています:) – learningjavascriptks

関連する問題