6.0 KiB
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 line
e 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çãoif
transmitida. - 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
if
falhar,No such property
será retornada.
- Se a segunda instrução
- Se a primeira instrução
if
falhar, o loopfor
continuará no próximo objeto da lista de contatos . - Se o parâmetro firstName não corresponder ao objeto de contatos final, o loop
for
encerrado eNo such contact
será retornado.
Exemplo de Execução
lookUpProfile("Akira","likes");
corre."Akira"
é correspondido à chave"firstName"
no primeiro objeto, portanto, a instruçãoif
retorna true."likes"
é encontrado dentro do primeiro objeto, então o segundoif
retorna 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 )