合并包含数组的对象:它是一个联合体吗?

时间:2018-03-11 15:56:40

标签: javascript jquery

如果我使用JQuery' $.extend来合并3个对象,我是否应该得到所有对象内容的联合?

作为一个例子,请看下面的例子;当我合并这些对象时,我期待结果:

{ hidden: ["foo", "link", "box-shadow"] }

但我明白了:

{ hidden: ["link", "box-shadow"] }

这是对的吗?是否有可能实现我期望/想要的结果?



(function() {
  let defaults = { hidden: ["foo"] };
  let options = { hidden: ["link"] };
  let custom = { hidden: ["link", "box-shadow"] };
  let result = {};
  
  $.extend(true, result, defaults, options, custom);
  console.log('result', result);
})()

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:0)

这可能更接近您的需求,仅使用普通的Javascript:

&#13;
&#13;
(function() {
  let defaults = { hidden: ["foo"] };
  let options = { hidden: ["link"] };
  let custom = { hidden: ["link", "box-shadow"] };
  let result = {
    hidden: [...defaults.hidden, ...options.hidden, ...custom.hidden]
  };
  
  // $.extend(true, result, defaults, options, custom);
  console.log('result', result);
})()
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
&#13;
&#13;