条件が真であっても、他にブロックが実行されるのはなぜですか?

アーメド・マディ

私は数分前にCodeacademyでJavaScriptを練習していましたが、何か紛らわしいことがわかりました。コードは次のとおりです。

var friends = {};
friends.bill = {
  firstName: "Bill",
  lastName: "Gates",
  number: "(206) 555-5555",
  address: ['One Microsoft Way','Redmond','WA','98052']
};
friends.steve = {
  firstName: "Steve",
  lastName: "Jobs",
  number: "(408) 555-5555",
  address: ['1 Infinite Loop','Cupertino','CA','95014']
};

var list = function(obj) {
  for(var prop in obj) {
    console.log(prop);
  }
};

var search = function(name) {
  for(var prop in friends) {
    if(friends[prop].firstName === name) {
      console.log(friends[prop]);
      return friends[prop];
    }
    else {
      return  "contact not found";
    }
  }
};

list(friends);
search("Steve");

問題は、検索関数で文字列「Steve」を引数として渡すと、条件「Contact not found」が返されるのに対し、同じ検索関数で文字列「Bill」を引数として渡すと、連絡先。

そんなことがあるものか?私は何が間違っているのですか?

thefourtheye

コードでは、ループの最初の反復で、prop値はSteve以外の何かですしたがって、if条件は失敗し、elseパーツに到達してcontact not foundすぐに戻ります

ただし、このようにnot foundオブジェクトがfirstName一致しない場合にのみメッセージを返す必要があります

function search(name) {
  for (var prop in friends) {
    if (friends[prop].firstName === name) {
      return friends[prop];
    }
  }
  return "contact not found";
};

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

条件が真であるように見えるのにブロックが入力されていないのにPythonがなぜですか?

分類Dev

以前のスロットがまだ処理中であっても、socket :: readyRead()の新しいシグナルが実行されるのはなぜですか?

分類Dev

条件が真でないのにwhileループが実行されるのはなぜですか?

分類Dev

コードがコードブロックで実行されているのにVSStudioでは実行されていないのはなぜですか

分類Dev

他のすべてのリサイクラービューメソッドが実行されているにもかかわらず、onBindViewHolder()がまったく実行されないのはなぜですか?

分類Dev

LogWriterの競合状態によってプロデューサーがブロックされるのはなぜですか?[実際の並行性]

分類Dev

LogWriterの競合状態によってプロデューサーがブロックされるのはなぜですか?[実際の並行性]

分類Dev

条件が真であっても、なぜこのループが壊れるのですか?

分類Dev

最後に常にtryブロックのreturnの直前に実行されるのに、finallyブロックのupdateがtryブロックによって返される変数の値に影響しないのはなぜですか?

分類Dev

条件が真であっても、JSPがこの 'if(s1.equals(s3))'ステートメントを実行しないのはなぜですか?

分類Dev

それでは、Promiseの後に「if」が実行されていない場合にブロックされるのはなぜですか?

分類Dev

onActivityResult()がワーカースレッドによってブロックされるのはなぜですか?

分類Dev

ブロックが実行されている場合、なぜこれがないのですか?

分類Dev

procに保存されているときにこのブロックが実行されないのはなぜですか?

分類Dev

反応:クリックしなくてもonclickが実行されるのはなぜですか?

分類Dev

条件が真であっても、returnステートメントがブロックから外れることはありません

分類Dev

条件が真であっても、returnステートメントがブロックから外れることはありません

分類Dev

tryブロックでreturnを使用しているにもかかわらず、finallyブロックのステートメントが実行されるのはなぜですか

分類Dev

ロックが設定されていても、GOが「並行マップ書き込み」でパニックになるのはなぜですか?

分類Dev

Objection.jsクエリでcatch()ブロックが実行されず、代わりにthen()が常に実行され、結果として0または1のいずれかが渡されるのはなぜですか?

分類Dev

例外がスローされたときにScalaのアトミックブロックが2回実行されるのはなぜですか?

分類Dev

'init'メソッドが同じオブジェクトによって2回実行されるのはなぜですか?

分類Dev

同じジョブが変数によって実行されるのに、なぜマクロを使用するのですか?C言語で?

分類Dev

pool.apply_async()によって生成されたサブプロセスが常にMainProcessとして実行されるのはなぜですか?

分類Dev

ブロックがこの順序で実行されるのはなぜですか?

分類Dev

hrefがブロック内に表示されているのに、pharaがブロック内にあるのはなぜですか?

分類Dev

もともとJavaScriptでブロックスコープが実装されなかったのはなぜですか?

分類Dev

ICleanUpがICleanUpOptionsInitializerによって初期化されたものとは異なるオプションで実行されるのはなぜですか?

分類Dev

コードのこの部分が他の部分よりも先に実行されるのはなぜですか?

Related 関連記事

  1. 1

    条件が真であるように見えるのにブロックが入力されていないのにPythonがなぜですか?

  2. 2

    以前のスロットがまだ処理中であっても、socket :: readyRead()の新しいシグナルが実行されるのはなぜですか?

  3. 3

    条件が真でないのにwhileループが実行されるのはなぜですか?

  4. 4

    コードがコードブロックで実行されているのにVSStudioでは実行されていないのはなぜですか

  5. 5

    他のすべてのリサイクラービューメソッドが実行されているにもかかわらず、onBindViewHolder()がまったく実行されないのはなぜですか?

  6. 6

    LogWriterの競合状態によってプロデューサーがブロックされるのはなぜですか?[実際の並行性]

  7. 7

    LogWriterの競合状態によってプロデューサーがブロックされるのはなぜですか?[実際の並行性]

  8. 8

    条件が真であっても、なぜこのループが壊れるのですか?

  9. 9

    最後に常にtryブロックのreturnの直前に実行されるのに、finallyブロックのupdateがtryブロックによって返される変数の値に影響しないのはなぜですか?

  10. 10

    条件が真であっても、JSPがこの 'if(s1.equals(s3))'ステートメントを実行しないのはなぜですか?

  11. 11

    それでは、Promiseの後に「if」が実行されていない場合にブロックされるのはなぜですか?

  12. 12

    onActivityResult()がワーカースレッドによってブロックされるのはなぜですか?

  13. 13

    ブロックが実行されている場合、なぜこれがないのですか?

  14. 14

    procに保存されているときにこのブロックが実行されないのはなぜですか?

  15. 15

    反応:クリックしなくてもonclickが実行されるのはなぜですか?

  16. 16

    条件が真であっても、returnステートメントがブロックから外れることはありません

  17. 17

    条件が真であっても、returnステートメントがブロックから外れることはありません

  18. 18

    tryブロックでreturnを使用しているにもかかわらず、finallyブロックのステートメントが実行されるのはなぜですか

  19. 19

    ロックが設定されていても、GOが「並行マップ書き込み」でパニックになるのはなぜですか?

  20. 20

    Objection.jsクエリでcatch()ブロックが実行されず、代わりにthen()が常に実行され、結果として0または1のいずれかが渡されるのはなぜですか?

  21. 21

    例外がスローされたときにScalaのアトミックブロックが2回実行されるのはなぜですか?

  22. 22

    'init'メソッドが同じオブジェクトによって2回実行されるのはなぜですか?

  23. 23

    同じジョブが変数によって実行されるのに、なぜマクロを使用するのですか?C言語で?

  24. 24

    pool.apply_async()によって生成されたサブプロセスが常にMainProcessとして実行されるのはなぜですか?

  25. 25

    ブロックがこの順序で実行されるのはなぜですか?

  26. 26

    hrefがブロック内に表示されているのに、pharaがブロック内にあるのはなぜですか?

  27. 27

    もともとJavaScriptでブロックスコープが実装されなかったのはなぜですか?

  28. 28

    ICleanUpがICleanUpOptionsInitializerによって初期化されたものとは異なるオプションで実行されるのはなぜですか?

  29. 29

    コードのこの部分が他の部分よりも先に実行されるのはなぜですか?

ホットタグ

アーカイブ