6.0 KiB
title, localeTitle
| title | localeTitle |
|---|---|
| Profile Lookup | Pesquisa de perfil |
Lembre-se de usar Read-Search-Ask se você ficar preso. Tente emparelhar o programa
e escreva seu próprio código 
Explicação do Problema:
Temos uma variedade de objetos representando pessoas diferentes em nossas listas de contatos.
Uma função lookUpProfile() que usa firstName e uma propriedade ( prop ) como argumentos foi pré-escrita para você.
A função deve verificar se firstName é firstName de um contato real e a propriedade dada (PROP) é uma propriedade desse contato.
Se ambos forem verdadeiros, retorne o valor dessa propriedade.
Se firstName não corresponder a nenhum contato, retorne No such contact .
Se prop não corresponder a nenhuma propriedade válida, não retorne No such property .
- Altere o código abaixo
// Only change code below this linee até// Only change code above this line. - Verifique se você está editando o interior da função
lookUpProfile().- Esta função inclui dois parâmetros, firstName e prop .
- A função deve procurar na lista de contatos o parâmetro firstName fornecido.
- Se houver uma correspondência encontrada, a função deve procurar o parâmetro prop dado.
- Se o firstName e o prop associado forem encontrados, você deve retornar o valor do prop .
- Se firstName for encontrado e nenhum prop associado for encontrado, você deverá retornar
No such property.
- Se firstName não for encontrado em qualquer lugar, você deve retornar
No such contact.
Links Relevantes
- Desafio: Acessando Propriedades de Objetos com Notação de Bracket
- Desafio: Iterar com JavaScript para loops
Sugestão: 1
Use um loop for para percorrer a lista de contatos .
tente resolver o problema agora
Dica: 2
Use uma instrução if aninhada para primeiro verificar se o firstName corresponde e, em seguida, verifica if o prop corresponde.
tente resolver o problema agora
Dica: 3
Deixe o seu return "No such contact" fora do loop for como um final pega-tudo.
tente resolver o problema agora
Alerta de Spoiler!
Solução à frente!
Solução básica de código:
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";
Explicação do código:
- O loop
foré executado, iniciando no primeiro objeto na lista de contatos . - Se o parâmetro firstName passado para a função corresponder ao valor da chave
"firstName"no primeiro objeto, a instruçãoiftransmitida. - Em seguida, usamos o método
.hasOwnProperty()(verifica se há uma determinada propriedade e retorna um booleano) com prop como argumento. Se for verdade, o valor de prop é retornado.- Se a segunda instrução
iffalhar,No such propertyserá retornada.
- Se a segunda instrução
- Se a primeira instrução
iffalhar, o loopforcontinuará no próximo objeto da lista de contatos . - Se o parâmetro firstName não corresponder ao objeto de contatos final, o loop
forencerrado eNo such contactserá retornado.
Exemplo de Execução
lookUpProfile("Akira","likes");corre."Akira"é correspondido à chave"firstName"no primeiro objeto, portanto, a instruçãoifretorna true."likes"é encontrado dentro do primeiro objeto, então o segundoifretorna true.- O valor de
"likes"é retornado -"Pizza", "Coding", "Brownie Points".
NOTAS PARA CONTRIBUIÇÕES:
NÃO adicione soluções semelhantes às soluções existentes. Se você acha que é semelhante, mas melhor , tente mesclar (ou substituir) a solução semelhante existente.- Adicione uma explicação da sua solução.
- Categorize a solução em uma das seguintes categorias - Básica , Intermediária e Avançada .

- Por favor, adicione seu nome de usuário somente se você adicionou qualquer conteúdo principal relevante . (
NÃO remova nenhum nome de usuário existente )

