Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

189
Vistas
Comprender por qué un comando else está en una posición diferente

Estoy estudiando Javascript con FreeCodeCamp, hasta ahora todo está claro pero tengo una pregunta tonta que no he entendido:

 function lookUpProfile(name, prop) { for (let 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"; }

¿Por qué return "No such contact"; es después del ciclo for y no el if que controla el nombre del contacto?!

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Si el return "No such contact"; estaría en la rama else de if (contacts[x].firstName === name) , la función dejaría de procesar los nombres después de que el primer nombre en la matriz de contactos no sea el que está buscando con la función:

buscarPerfil( nombre , propiedad)

Pero como está escrito, devolverá "No hay tal contacto" solo cuando se verifiquen todos los nombres de la matriz de contactos. Es por eso que tiene que ejecutar el ciclo completo para poder saber si el nombre que está buscando no está en la lista de contactos.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Esto se debe a la función (método) que tiene un valor de retorno, solo para obtener más explicaciones, las funciones pueden tener un tipo de retorno o vacío, que no devuelve nada a la persona que llama.

entonces, aquí su función lookUpProfile (nombre, propiedad) devuelve una cadena, por lo que en la función, la palabra clave de retorno debe tener y devolver el valor de los contactos de retorno [x] [prop]; , o la cadena devuelve "No existe tal propiedad"; o devolver "No existe tal contacto";

para la parte Por qué de su pregunta, el bucle proporciona la palabra clave de retorno , pero tómela así, que no es una forma académica de decirlo, pero lo hago de todos modos, el compilador dice "Sé que ha proporcionado retorno pero no saber si tiene algún error de tiempo de ejecución y no devuelve el valor en absoluto". En el compilador de C# , le muestra Código de gravedad Descripción Estado de supresión de línea de archivo de proyecto

 string test() { for (int i = 0; i < 5; i++) { if (i == 3) { return i.ToString(); } } } **Error CS0161 'ClassName.test()': not all code paths return a value**

en C# cuenta como un error del compilador, lo que significa que no permite compilar a menos que lo solucione.

Básicamente, no le permite ingresar a algunos compiladores como C#, para garantizar que la función devuelva un valor.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda