if / else 문을 중첩하지 않으면 코드가 작동하지 않습니다. 왜 둥지를 틀어 야합니까?

S_Kangas

개요

저는 JavaScript를 배우고 있으며 객체 속성, 루프 및 if / else 문에 대한 액세스를 결합하는 연습이 있습니다.

내 코드가 작동하지 않습니다. (작동하는) 솔루션은 if / else 문을 중첩하지만 그렇지 않으면 동일한 코드로 보입니다. 차이점을 이해하지 못합니다.

운동 지침

  • 함수는 name이 실제 연락처의 firstName이고 주어진 속성 (prop)이 해당 연락처의 속성인지 확인해야합니다.

  • 둘 다 참이면 해당 속성의 "값"을 반환합니다.

  • 이름이 연락처와 일치하지 않는 경우 "No such contact"를 반환합니다.

  • prop이 이름과 일치하는 연락처의 유효한 속성과 일치하지 않으면 "No such property"를 반환합니다.

주어진 배열

 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(name, prop){

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

lookUpProfile("Sherlock", "likes"); 
//should return ["Intriguing Cases", "Violin"]

운동 솔루션

(작동하는)

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

lookUpProfile("Sherlock", "likes"); 
//returns ["Intriguing Cases", "Violin"]

왜?

두 가지 솔루션이 모두 작동 할 것으로 예상했지만 내 솔루션은 그렇지 않습니다. 왜?

alex067

이름이 주어진 이름과 같지 않으면 즉시 반환하므로 코드가 작동하지 않습니다.

따라서 프로그램을 실행하십시오.

i = 0, 연락처 [0] .name = Akira와 Sherlock을 비교합니다. 이름이 셜록과 같습니까? 아니 그렇지 않아. 따라서 첫 번째 if if (contacts[i].firstName === name && contacts[i].hasOwnProperty(prop)) {조건이 실패합니다. 다음 조건으로 넘어갑니다.

else if (contacts[i].firstName !== name) {
        return "No such contact";

그리고이 조건은 사실입니다. 그래서 우리는 즉시 돌아옵니다.

코드가 어떻게 조기에 반환되는지 보십니까? 그것은 우리가 실제로 전진하는 것을 허용하지 않습니다.

해야 할 일은 반환을 for 루프 외부에 배치하는 것입니다. 이것은 분명히 숙제 해결책이기 때문에 정확한 해결책을주지 않을 것입니다. 그러나 힌트는 당신을 앞으로 나아갈 것입니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

하나 이상의 변수가 0보다 작은 경우 if 문을 실행하지 않고 else if 문으로 이동하려면 어떻게해야합니까?

분류에서Dev

두 변수가 동일한 작업을하지 않으면 왜 내 문은 물어 무엇입니까?

분류에서Dev

C ++ 다중 중첩 If-else 문은 작동하지만 결합되지 않습니다.

분류에서Dev

다음 코드는 작동하지 않습니다. .. 왜?

분류에서Dev

이 중첩 된 컬렉션을 가장 잘 표시하려면 어떻게해야합니까? (내 코드가 작동하지 않는 이유를 말씀해 주시겠습니까?)

분류에서Dev

TeamViewer가 자동으로 시작되지 않습니다. 시작하려면 어떻게해야합니까?

분류에서Dev

TeamViewer가 자동으로 시작되지 않습니다. 시작하려면 어떻게해야합니까?

분류에서Dev

아코디언 코드가 제대로 작동하지 않습니다. 어떻게 해결해야합니까?

분류에서Dev

WordPress setcookie ()가 if / else 문에서 작동하지 않습니다.

분류에서Dev

PouchDB 코드는 첨부 파일을 추가하지 않으면 작동하지 않습니다.

분류에서Dev

High Low 게임을 만들어야합니다. 왜 작동하지 않는지 이해가 안 돼

분류에서Dev

이 C 코드 세그먼트에 어떤 문제가 있습니까? 할당하지 않으면 잘 작동합니다.

분류에서Dev

내 socket.io 및 node.js 코드가 작동하지 않습니다-왜?

분류에서Dev

자바 스크립트 코드가 작동하지 않습니다. 왜?

분류에서Dev

자원을 2 개 이상 중첩하지 않도록 읽었습니다. 호텔 / 방 / 방문 모델을 중첩하려면 어떻게해야합니까?

분류에서Dev

중첩 조각이 있으면 setRetainInstance (true)가 작동하지 않습니다.

분류에서Dev

특정 프로그램을 선택하지 않으면 미디어 키가 작동하지 않습니다.

분류에서Dev

Regex Java 문제 코드가 작동하지 않습니다.

분류에서Dev

어떤 이유로 코드가 작동하지 않습니다.

분류에서Dev

어떤 이유로 코드가 작동하지 않습니다.

분류에서Dev

중첩 된 li 드래그가 작동하지 않습니다.

분류에서Dev

Docker Compose는 "볼륨"이있을 때 작동하지 않고 그렇지 않으면 작동합니다. 왜?

분류에서Dev

ionic 4 중첩 경로가 작동하지 않습니다. URL에 loadchildren을로드하지 않음

분류에서Dev

c # winform If-else가 작동하지 않는 코드를 어떻게 바꿀 수 있습니까?

분류에서Dev

내 코드가 작동하지 않습니다. 잘린 div에 전후 요소를 추가하려면 어떻게해야합니까?

분류에서Dev

PHP if / else가 정상적으로 작동하지 않습니다.

분류에서Dev

변수 이름을 변경하면 코드가 작동하지 않습니다.

분류에서Dev

Matlab Kalman 필터 코드-왜 작동하지 않습니까?

분류에서Dev

PHP 내에서 JS 함수를 호출하면 왜 JS 코드가 작동하지 않습니까?

Related 관련 기사

  1. 1

    하나 이상의 변수가 0보다 작은 경우 if 문을 실행하지 않고 else if 문으로 이동하려면 어떻게해야합니까?

  2. 2

    두 변수가 동일한 작업을하지 않으면 왜 내 문은 물어 무엇입니까?

  3. 3

    C ++ 다중 중첩 If-else 문은 작동하지만 결합되지 않습니다.

  4. 4

    다음 코드는 작동하지 않습니다. .. 왜?

  5. 5

    이 중첩 된 컬렉션을 가장 잘 표시하려면 어떻게해야합니까? (내 코드가 작동하지 않는 이유를 말씀해 주시겠습니까?)

  6. 6

    TeamViewer가 자동으로 시작되지 않습니다. 시작하려면 어떻게해야합니까?

  7. 7

    TeamViewer가 자동으로 시작되지 않습니다. 시작하려면 어떻게해야합니까?

  8. 8

    아코디언 코드가 제대로 작동하지 않습니다. 어떻게 해결해야합니까?

  9. 9

    WordPress setcookie ()가 if / else 문에서 작동하지 않습니다.

  10. 10

    PouchDB 코드는 첨부 파일을 추가하지 않으면 작동하지 않습니다.

  11. 11

    High Low 게임을 만들어야합니다. 왜 작동하지 않는지 이해가 안 돼

  12. 12

    이 C 코드 세그먼트에 어떤 문제가 있습니까? 할당하지 않으면 잘 작동합니다.

  13. 13

    내 socket.io 및 node.js 코드가 작동하지 않습니다-왜?

  14. 14

    자바 스크립트 코드가 작동하지 않습니다. 왜?

  15. 15

    자원을 2 개 이상 중첩하지 않도록 읽었습니다. 호텔 / 방 / 방문 모델을 중첩하려면 어떻게해야합니까?

  16. 16

    중첩 조각이 있으면 setRetainInstance (true)가 작동하지 않습니다.

  17. 17

    특정 프로그램을 선택하지 않으면 미디어 키가 작동하지 않습니다.

  18. 18

    Regex Java 문제 코드가 작동하지 않습니다.

  19. 19

    어떤 이유로 코드가 작동하지 않습니다.

  20. 20

    어떤 이유로 코드가 작동하지 않습니다.

  21. 21

    중첩 된 li 드래그가 작동하지 않습니다.

  22. 22

    Docker Compose는 "볼륨"이있을 때 작동하지 않고 그렇지 않으면 작동합니다. 왜?

  23. 23

    ionic 4 중첩 경로가 작동하지 않습니다. URL에 loadchildren을로드하지 않음

  24. 24

    c # winform If-else가 작동하지 않는 코드를 어떻게 바꿀 수 있습니까?

  25. 25

    내 코드가 작동하지 않습니다. 잘린 div에 전후 요소를 추가하려면 어떻게해야합니까?

  26. 26

    PHP if / else가 정상적으로 작동하지 않습니다.

  27. 27

    변수 이름을 변경하면 코드가 작동하지 않습니다.

  28. 28

    Matlab Kalman 필터 코드-왜 작동하지 않습니까?

  29. 29

    PHP 내에서 JS 함수를 호출하면 왜 JS 코드가 작동하지 않습니까?

뜨겁다태그

보관