我有一个名为composeObject的函数,我经常使用它来组合其他对象中的对象,但是我意识到我在多个脚本中编写了很多代码,并且我想创建一个仅适用于所有情况。看看下面的样子:
const composeObject = (a, b, c, d, e, f) => Object.assign({}, a, b, c, d, e, f);
然后我这样称呼她
const Myobject = composeObject(objA, objB, objC, objD, objE, objF);
问题是我有几个不同的对象,有时我需要这样称呼它:
const Myobject1 = composeObject(objA, objB);
// or
const Myobject2 = composeObject(objA, objB, objC, objD);
我要解决的是:
const composeObject1 = (a, b) => Object.assign({}, a, b);
const composeObject2 = (a, b, c, d) => Object.assign({}, a, b, c, d);
我这样称呼他们:
const Myobject1 = composeObject1(objA, objB);
const Myobject2 = composeObject2(objA, objB, objC, objD);
但是,有多个对象,而不仅仅是两个,这变得很烦人。您将如何编写可满足不同数量参数的composeObject函数?
答案 0 :(得分:4)
您可以使用REST语法获得相同的结果:
const composeObject = (...objs) => Object.assign({},...objs);
let mergedObj = composeObject({a:1},{b:2});
let mergedObjTwo = composeObject({a:1},{b:2},{c:5});
console.log(mergedObj);
console.log(mergedObjTwo);