jQuery将对象键/值转换为函数参数

时间:2018-09-07 17:54:19

标签: javascript jquery function object parameters

是否可以像这样转换对象:

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

使用类似函数内的相同键输入参数:

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

使用功能:

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

代替:

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

结果:

  

嘿哇

3 个答案:

答案 0 :(得分:0)

您可以为此使用对象分解:

function test({ para1, para2}) {
  alert(para1);
  alert(para2)
}
test({ 'para1': 'hey', 'para2': 'wow' })

答案 1 :(得分:0)

您是指动态输入参数吗?

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));

答案 2 :(得分:-1)

是的,您可以使用eval函数以动态形式添加变量:

尝试一下:

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'})

这应该打个招呼