6.1 KiB
title | localeTitle |
---|---|
Profile Lookup | Búsqueda de perfiles |
Recuerda usar Read-Search-Ask
si te atascas. Tratar de emparejar el programa y escribe tu propio código
Explicación del problema:
Tenemos una variedad de objetos que representan a diferentes personas en nuestras listas de contactos.
Un lookUpProfile()
función que toma primerNombre y una propiedad (prop) como argumentos ha sido pre-escrito para ti.
La función debe comprobar si es primerNombre primerNombre de un contacto real y la propiedad dada (prop) es una propiedad de ese contacto.
Si ambos son verdaderos, entonces devuelva el valor de esa propiedad.
Si primerNombre no se corresponde con contactos a continuación, volver No such contact
.
Si la propiedad no corresponde a ninguna propiedad válida, devuelva No such property
- Cambie el código a continuación
// Only change code below this line
y hasta// Only change code above this line
. - Asegúrese de que está editando el interior de la función
lookUpProfile()
.- Esta función incluye dos parámetros, firstName y prop.
- La función debe mirar a través de la lista de contactos para el parámetro primerNombre dado.
- Si se encuentra una coincidencia, la función debe buscar el parámetro prop dado.
- Si se encuentran tanto el FirstName como el prop asociado, debe devolver el valor del prop .
- Si primerNombre se encuentra y no se encuentra un puntal asociado, debe devolver
No such property
.
- Si primerNombre no se encuentra en cualquier lugar, debe devolver
No such contact
.
Enlaces relevantes
- Desafío: acceder a las propiedades de los objetos con notación de corchete
- Desafío: Iterar con JavaScript para bucles
Sugerencia: 1
Use un bucle for
para recorrer la lista de contactos .
intenta resolver el problema ahora
Sugerencia: 2
Use un anidado if
la declaración comprobar primero si el nombre coincide, y luego comprueba if
los partidos prop.
intenta resolver el problema ahora
Sugerencia: 3
Deje su return "No such contact"
fuera del bucle for
como un final definitivo.
intenta resolver el problema ahora
¡Alerta de spoiler!
¡Solución por delante!
Solución de código básico:
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";
Explicación del código:
- El bucle
for
ejecuta, comenzando por el primer objeto en la lista de contactos . - Si el parámetro firstName pasado a la función coincide con el valor de la clave
"firstName"
en el primer objeto, la instrucciónif
pasa. - Luego, usamos el método
.hasOwnProperty()
(verifica si hay una propiedad dada y devuelve un valor booleano) con prop como argumento. Si es cierto, se devuelve el valor de prop .- Si la segunda instrucción
if
falla,No such property
se devuelveNo such property
.
- Si la segunda instrucción
- Si la primera instrucción
if
falla, el buclefor
continúa hasta el siguiente objeto en la lista de contactos . - Si el parámetro firstName no se corresponde con los contactos finales objeto, el
for
las salidas de bucle yNo such contact
se devuelve.
Ejecución de ejemplo
lookUpProfile("Akira","likes");
carreras."Akira"
coincide con la clave"firstName"
en el primer objeto, por lo que la instrucciónif
devuelve verdadero."likes"
se encuentra dentro del primer objeto, por lo que la segunda declaraciónif
devuelve true.- Se devuelve el valor de
"likes"
:"Pizza", "Coding", "Brownie Points"
.
NOTAS PARA LAS CONTRIBUCIONES:
- NO agregue soluciones que sean similares a las soluciones existentes. Si cree que es similar pero mejor , intente fusionar (o reemplazar) la solución similar existente.
- Agregue una explicación de su solución.
- Categorice la solución en una de las siguientes categorías: Básica , Intermedia y Avanzada .
- Agregue su nombre de usuario solo si ha agregado algún contenido principal relevante . ( NO elimine ningún nombre de usuario existente )