如何传递函数数组Object.assign并将相同的参数传递给每个函数

时间:2017-07-20 11:05:02

标签: javascript typescript

我有以下代码:

return Object.assign({}, generators(config));

如果generators的类型为Function,则代码会正确编译并执行,但generators的类型为Function[],我想要此数组中的所有函数要执行并将config作为参数传递给他们。

问题:如何将多个功能传递给Object.assign并将config传递给他们。

2 个答案:

答案 0 :(得分:0)

var x = Object.assign({}, someFunc([{
  func: func1,
  config: {a:1}
}, {
  func: func2,
  config: {b:2}
}]))


function func1 (config) {
  return config;
}

function func2 (config) {
  return config;
}

function someFunc (list) {
  var obj = {};
  for (var i = 0; i < list.length; i++) {
     Object.assign(obj, list[i].func(list[i].config))
  }

  return obj;
}

console.log(x);

答案 1 :(得分:0)

答案是:

  let temp = generators.map(gen => gen(config));
  return Object.assign({}, ...generators.map(gen => gen(config)));