Jquery конвертирует ключи / значения объектов в параметры функций - PullRequest
0 голосов
/ 07 сентября 2018

Возможно ли преобразовать объект так:

{'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 голосов
/ 07 сентября 2018

Да, вы можете использовать функцию 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'})

Это должно вывести привет

0 голосов
/ 07 сентября 2018

Вы имели в виду динамические входные параметры?

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 голосов
/ 07 сентября 2018

Для этого вы можете использовать деструктуризацию объекта:

function test({ para1, para2}) {
  alert(para1);
  alert(para2)
}
test({ 'para1': 'hey', 'para2': 'wow' })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...