Javascript 如何仅在定义对象时合并JS中的对象?

Javascript 如何仅在定义对象时合并JS中的对象?,javascript,merge,javascript-objects,Javascript,Merge,Javascript Objects,我正在学习JS,目前我需要4个对象相互合并,但我必须确保在结果中,结果对象中没有未定义的对象 目前,我是这样实现的: let result = {}; result = Object.assign(result, first); if (second) result = Object.assign(result, second); if (third) result = Object.assign(result, third); if (fourth) result = Ob

我正在学习JS,目前我需要4个对象相互合并,但我必须确保在结果中,结果对象中没有未定义的对象

目前,我是这样实现的:

  let result = {};
  result = Object.assign(result, first);
  if (second) result = Object.assign(result, second);
  if (third) result = Object.assign(result, third);
  if (fourth) result = Object.assign(result, fourth);
  return result;
但是,我相信必须有一个更干净的解决方案来完成这项任务。 有吗

忽略未定义的参数值。你可以简化为

return Object.assign({}, first, second, third, fourth);
忽略未定义的参数值。你可以简化为

return Object.assign({}, first, second, third, fourth);


在结果对象中有一些未定义的内容是什么意思?只有一个属性可以未定义,结果始终是一个对象。如何在开始时将所有内容设置为某个值。我之所以未定义是因为:让结果={…第一、第二、第三、第四};我需要把4个宾语连在一起——动词好像不见了。你们需要对彼此做些什么?我的错,你说在结果对象中有一些未定义的东西是什么意思?只有一个属性可以未定义,结果始终是一个对象。如何在开始时将所有内容设置为某个值。我之所以未定义是因为:让结果={…第一、第二、第三、第四};我需要把4个宾语连在一起——动词好像不见了。你们需要对彼此做些什么?我的坏消息似乎忽略了所有虚假的价值观。是的,谢谢!这件有varargs的很好。当我执行以下操作时,我有未定义的值:let result={…first,second,third,fourth}@dvelopp如果您打算使用实验对象扩展语法,它需要是{…第一,…第二,…第三,…第四},否则它是用第二个变量的值创建名为second的属性的缩写,该变量可能是对象或未定义的。我认为它应该是{…第一,…第二,…第三,…第四}也许这就是为什么你有未定义的值?Bergi解释得更快太好了!这解释了为什么我没有定义。我喜欢有…第一,…第二,…第三,…第四的选项。Object.assign{},first,second,third,fourth有什么不同吗?它似乎忽略了所有的错误值。是的,谢谢!这件有varargs的很好。当我执行以下操作时,我有未定义的值:let result={…first,second,third,fourth}@dvelopp如果您打算使用实验对象扩展语法,它需要是{…第一,…第二,…第三,…第四},否则它是用第二个变量的值创建名为second的属性的缩写,该变量可能是对象或未定义的。我认为它应该是{…第一,…第二,…第三,…第四}也许这就是为什么你有未定义的值?Bergi解释得更快太好了!这解释了为什么我没有定义。我喜欢有…第一,…第二,…第三,…第四的选项。Object.assign{},first,second,third,fourth有什么不同吗?