Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => Mensaje iniciado por: AlexKurban en 30 Julio 2015, 21:14 PM

Título: ejercicio para novatos de javascript
Publicado por: AlexKurban en 30 Julio 2015, 21:14 PM
hola a todos, estoy estudiando javascript por mi cuenta y me veo bastante jodido, se que es muy importante pero quiza no se pensar de esa manera que piden para el ejercicio. veran el tema es que tengo que crear 2 funciones, A y B que tienen unos cuantos argumentos. En la funcion A es necesario recibir esa cadena de argumentos que le han sido dados a la funcion y añadir uno mas (un string ¨hello¨). y con toda esa lista de argumentos llamar a la funcion B. en la funcion B es necesario que al llamarla aprezca en la consola el ultimo string (¨hello¨).

es esto posible?
Título: Re: ejercicio para novatos de javascript
Publicado por: MinusFour en 30 Julio 2015, 21:32 PM
Si es posible.

Código (javascript) [Seleccionar]

function A (parametros){
   B(parametros, 'hello');
}

function B (parametros, str){
   console.log(str);
}


Edit:
Si es para argumentos variables:

Código (javascript) [Seleccionar]

function A(){
    [].push.call(arguments, 'hello');
    B.apply(this, arguments);
}

function B() {
    console.log([].pop.call(arguments));
}
Título: Re: ejercicio para novatos de javascript
Publicado por: AlexKurban en 31 Julio 2015, 18:44 PM
no entiendo, asi podria ser?

Código (javascript) [Seleccionar]

function A (name1, name2, name3){
    console.log(name1 + name2 + name3 + "hello")
}
function B (name1, name2, name3){
console.log("hello")
}
A("alex ", "you ", "bro ");
B();


Mod: Obligatorio el uso de etiquetas GeSHi.
Título: Re: ejercicio para novatos de javascript
Publicado por: MinusFour en 31 Julio 2015, 18:53 PM
Cita de: AlexKurban en 31 Julio 2015, 18:44 PM
no entiendo, asi podria ser?

Código (javascript) [Seleccionar]

function A (name1, name2, name3){
    console.log(name1 + name2 + name3 + "hello")
}
function B (name1, name2, name3){
console.log("hello")
}
A("alex ", "you ", "bro ");
B();


Si haces eso, name2 y name3 de B() son undefined. El operador + funciona para concatenar strings y sumar números. Lo que tu estás haciendo es enviar un solo argumento en la llamada a B mientras que B espera 3 argumentos. Como imprimes "Hello" es lo de menos, pero si esperas a imprimir el último argumento enviado a B entonces no es correcto.
Título: Re: ejercicio para novatos de javascript
Publicado por: AlexKurban en 1 Agosto 2015, 19:55 PM
Y si lo hago asi?

Código (javascript) [Seleccionar]
   function A(a,b){
     return function(c){
       console.log(a,b,c);
     };
   }
   
   var B = A(1, 2);
   
   B('Hola');



Mod: Obligatorio el uso de etiquetas GeSHi.
Título: Re: ejercicio para novatos de javascript
Publicado por: MinusFour en 1 Agosto 2015, 21:29 PM
Cita de: AlexKurban en  1 Agosto 2015, 19:55 PM
Y si lo hago asi?

Código (javascript) [Seleccionar]
   function A(a,b){
     return function(c){
       console.log(a,b,c);
     };
   }
   
   var B = A(1, 2);
   
   B('Hola');



Mod: Obligatorio el uso de etiquetas GeSHi.

Pues no es lo que quieres hacer de acuerdo a tu enunciado:

CitarEn la funcion A es necesario recibir esa cadena de argumentos que le han sido dados a la funcion y añadir uno mas (un string ¨hello¨). y con toda esa lista de argumentos llamar a la funcion B
Título: Re: ejercicio para novatos de javascript
Publicado por: AlexKurban en 2 Agosto 2015, 01:39 AM
vaya... esque el maldito enunciado esta en ruso, yo soy bielorruso pero he vivido en España 21 años y ahora traducir este tipo de tecnicismos es jodidillo, concretamente el enunciado, por eso ando liado, creo que he puesto mal el enunciado, es asi;

tengo que crear 2 funciones, A y B que tienen unos cuantos argumentos. En la funcion A es necesario recibir esa cadena de argumentos que le han sido dados a la funcion y añadir uno mas (un string ¨hello¨). y con toda esa lista de argumentos llamar a la funcion B. en la funcion B es necesario que al llamarla aprezca en la consola ESE ultimo string ¨hello¨(el que le fue dado a la funcion A).

nose si eso haria que cambiara algo en las soluciones que me has dado. El caso es que al llamar B en la consola tenga que aparecer el ultimo string que tengo que llamar "hello" que le fue dado a la funcion A