Tengo dos objetos, y quiero que me los devuelva permutado en JavaScript, es decir, que si yo ingreso a
y b
como argumentos, me devuelva [b,a]
, cambiando el orden.
Pero yo no quiero una función que solo me devuelva el resultado permutado, sino que además me cambie los valores de los objetos (también pueden ser arrays) ingresados.
En el siguiente código, no sirve ninguna de las dos funciones permutar
. La primera no, porque no cambia los valores, y solo devuelve los valores permutados. La segunda tampoco, porque aunque devuelve los valores permutados, solamente cambia los valores dentro de la función, pero por fuera siguen igual:
var funciones_permutar=[
function permutar(a,b)
{
return [b,a]
},
function permutar(a,b)
{
var c=a
a=b
b=c
return [a,b]
}
]
for(var i=0;i<funciones_permutar.length;i++)
{
var objeto_1={d:2,e:3}
var objeto_2={f:4}
console.log("Función permutar "+(i+1))
//Devuelve correctamente.
console.log(JSON.stringify([objeto_1,objeto_2]))
console.log(JSON.stringify(funciones_permutar[i](objeto_1,objeto_2)))
//Devuelve [{"d":2,"e":3},{"f":4}], pero debería devolver [{"f":4},{"d":2,"e":3}]
console.log(JSON.stringify([objeto_1,objeto_2]))
}