freeCodeCamp/guide/russian/certifications/javascript-algorithms-and-d.../basic-javascript/profile-lookup/index.md

8.4 KiB
Raw Blame History

title localeTitle
Profile Lookup Поиск профиля

:triangular_flag_on_post: Не забудьте использовать Read-Search-Ask если вы застряли. Попробуйте подключить программу :busts_in_silhouette: и напишите свой собственный код :pencil:

:checkered_flag: Проблема Объяснение:

У нас есть набор объектов, представляющих разные люди в наших списках контактов.

Функция lookUpProfile() которая принимает firstName и свойство ( prop ) в качестве аргументов, была предварительно написана для вас.

Функция должна проверять, является ли firstName фактическим контактом firstName, и данное свойство ( prop ) является свойством этого контакта.

Если оба значения true, верните значение этого свойства.

Если firstName не соответствует никаким контактам, тогда возвращайте No such contact .

Если prop не соответствует каким-либо действительным свойствам, тогда возвращайте No such property .

  • Измените код ниже // Only change code below this line и до // Only change code above this line .
  • Убедитесь, что вы редактируете внутреннюю часть функции lookUpProfile() .
    • Эта функция включает в себя два параметра: firstName и prop .
  • Функция должна просматривать список контактов для данного параметра firstName .
    • Если найдено совпадение, тогда функция должна искать данный параметр prop .
    • Если найдено имя firstName и связанная поддержка , вы должны вернуть значение prop .
    • Если firstName найдено и никакой связанной опоры не найдено, вы должны вернуть No such property .
  • Если firstName не найдено нигде, вы должны вернуть No such contact .

Связанные ссылки

:speech_balloon: Подсказка: 1

Используйте цикл for циклического перехода по списку контактов .

попытаться решить проблему сейчас

:speech_balloon: Подсказка: 2

Используйте вложенный оператор if чтобы сначала проверить, совпадает ли firstName , и затем проверяет, соответствует if поддержка .

попытаться решить проблему сейчас

:speech_balloon: Подсказка: 3

Оставьте свое return "No such contact" из цикла for в качестве окончательного улова.

попытаться решить проблему сейчас

Осторожно, спойлеры!

предупреждающий знак

Решение впереди!

:beginner: Решение базового кода:

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"; 

Код Объяснение:

  • Цикл for запускается, начиная с первого объекта в списке контактов .
  • Если параметр firstName, переданный в функцию, соответствует значению ключа "firstName" в первом объекте, выполняется оператор if .
  • Затем мы используем .hasOwnProperty() (проверяет, есть ли заданное свойство и возвращает логическое значение) с prop в качестве аргумента. Если это правда, возвращается значение prop .
    • Если второй оператор if терпит неудачу, No such property не возвращается.
  • Если первый оператор if не работает, цикл for переходит к следующему объекту в списке контактов .
  • Если параметр firstName не соответствует объекту конечных контактов , цикл for завершается, и No such contact не возвращается.

Пример Run

  • lookUpProfile("Akira","likes"); пробеги.
  • "Akira" сопоставляется с ключом "firstName" в первом объекте, поэтому оператор if возвращает true.
  • "likes" находится внутри первого объекта, поэтому второй оператор if возвращает true.
  • Возвращается значение "likes" - "Pizza", "Coding", "Brownie Points" .

:clipboard: ПРИМЕЧАНИЯ ДЛЯ ВЗНОСОВ:

  • :warning: НЕ добавляйте решения, похожие на любые существующие решения. Если вы считаете, что это похоже, но лучше , попробуйте объединить (или заменить) существующее подобное решение.
  • Добавьте объяснение своего решения.
  • Классифицируйте решение в одной из следующих категорий - Basic , Intermediate и Advanced . :traffic_light:
  • Пожалуйста, добавьте свое имя пользователя, только если вы добавили соответствующее основное содержимое . ( :warning: НЕ удаляйте существующие имена пользователей )

Видеть :point_right: Wiki Challenge Solution Template для Wiki Challenge Solution Template для справки.