Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 创建一个将合并所有对象参数的函数_Javascript_Node.js_Object - Fatal编程技术网

Javascript 创建一个将合并所有对象参数的函数

Javascript 创建一个将合并所有对象参数的函数,javascript,node.js,object,Javascript,Node.js,Object,我想做一个可以接受任意数量参数的函数。我可以用固定参数生成函数,但不能用n个参数求解 例如: const first = { x: 2, y: 3}; const second = { a: 70, x: 4, z: 5 }; const third = { x: 0, y: 9, q: 10 }; const firstSecondThird = extend(first, second, third); // { x: 2, y: 3, a: 70, z: 5, q: 10 } cons

我想做一个可以接受任意数量参数的函数。我可以用固定参数生成函数,但不能用n个参数求解

例如:

const first = { x: 2, y: 3};
const second = { a: 70, x: 4, z: 5 };
const third = { x: 0, y: 9, q: 10 };

const firstSecondThird = extend(first, second, third);
// { x: 2, y: 3, a: 70, z: 5, q: 10 }

const secondThird = extend(second, third);
// { a: 70, x: 4, z: 5, y: 9, q: 10 }`
您可以使用将所有参数获取到一个数组中,然后在内部使用以递归方式合并它们:

const first={x:2,y:3},
第二个={a:70,x:4,z:5},
第三个={x:0,y:9,q:10};
常量extend=(…params)=>params.reduce((r,p)=>({…r,…p}),{})
日志(扩展(第一、第二、第三))

console.log(extend(second,third))
可能存在So对象反向赋值的重复?@YongQuan那一个用于固定参数,我想用n个参数生成函数。不清楚:你是在问如何合并对象吗?或者你是在问如何处理数量可变的函数参数?@DanielBeck我想合并对象而不覆盖,并且有n个参数。我可以求解固定参数。您需要颠倒参数的顺序才能得到OP的预期结果。@adiga正是我要找的。多谢各位@如果任何参数未定义或参数小于2,adiga I也必须抛出错误。如果
参数length
为<2,则在
扩展
抛出错误中,如果
p
未定义