ejercicio para novatos de javascript

Iniciado por AlexKurban, 30 Julio 2015, 21:14 PM

0 Miembros y 1 Visitante están viendo este tema.

AlexKurban

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?
Tropiezo, me levanto, continuo

MinusFour

#1
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));
}

AlexKurban

#2
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.
Tropiezo, me levanto, continuo

MinusFour

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.

AlexKurban

#4
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.
Tropiezo, me levanto, continuo

MinusFour

#5
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

AlexKurban

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
Tropiezo, me levanto, continuo