¿Es posible convertir un objeto así:

{'para1':'hey','para2':'wow'}

En parámetros usando las mismas teclas dentro de una función así:

window['test']({'para1':'hey','para2':'wow'})

Utilizando la función:

function test(para1,para2){alert(para1);alert(para2)}

En lugar de:

function test(parameters){alert(parameters['para1']);alert(parameters['para2'])}

Resultado:

hey wow

-2
Jeffrey the Giraffe 7 sep. 2018 a las 20:54

3 respuestas

La mejor respuesta

Puede usar la desestructuración de objetos para esto:

function test({ para1, para2}) {
  alert(para1);
  alert(para2)
}
test({ 'para1': 'hey', 'para2': 'wow' })
0
michaelitoh 7 sep. 2018 a las 18:01

¿quiso decir parámetros de entrada dinámica?

function test() {
    var i;
    var result = '';
    for(i = 0; i < arguments.length; i++) {
      if(typeof(arguments[i])=='object'){
        for(ob in arguments[i])
          result += arguments[i][ob] +' ';
      }
      else result += arguments[i] +' ';
    }
    return result;
} 

var inObj = {'para1':'I', 'para2':'Love', 'paraMore':'You'};

alert(test(inObj));
0
Atmahadli 7 sep. 2018 a las 18:19

Sí, puede usar la función eval para agregar variables en una forma dinámica:

Prueba esto:

function Test(object){
    Object.entries(object).forEach((entry) => {
        eval(entry[0]+' = "'+entry[1]+'"');
    });

    Object.keys(object).forEach((entry) => {
        eval('console.log('+entry+')');
    });
}

Test({'eric': 'hello'})

Esto debería imprimir hola

-1
Eric Nordelo Galiano 7 sep. 2018 a las 18:11