javascript - JQuery 与 extend (reduce objects) 相反

标签 javascript jquery

我面临下一个问题,我可以合并/扩展对象并且工作得很好,但现在我需要做与扩展对象相反的事情,JQuery 文档:

var object1 = {
  apple: 0,
  banana: { weight: 52, price: 100 },
  cherry: 97
};
var object2 = {
  banana: { price: 200 },
  durian: 100
};

// Merge object2 into object1, recursively
$.extend( true, object1, object2 );

// Result
{"apple":0,"banana":{"weight":52,"price":200},"cherry":97,"durian":100}

这很酷,而且效果很好,但是我如何获得相反的操作,例如获得这样的输出:

{"apple":0,"banana":{"weight":52},"cherry":97}

最佳答案

没有这样的函数,但是你可以自己写:

$.prototype.reduce = function reduce(obj1, obj2) {
  for (var k in obj2) {
    if (obj1.hasOwnProperty(k) && obj2.hasOwnProperty(k)) {
      if (typeof obj1[k] == "object" && typeof obj2[k] == "object") {
         reduce(obj1[k], obj2[k]);
      }
      else delete obj1[k];
    }
  }
}

关于javascript - JQuery 与 extend (reduce objects) 相反,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27444417/

相关文章:

javascript - css transform translate3d 后元素 scrollWidth 错误

javascript - Owl Carousel 2 项目在 RTL 中拖动/触摸时消失

javascript - 如何显示和隐藏使用数据表 jquery 的列

jQuery UI slider 句柄越界

javascript - 如何完整下载页面源代码,而不是部分下载?

Javascript/Jquery 从计时器调用时如何等待 AJAX 函数完成?

javascript - 如何在Wix网站上制作一个简单的播放/暂停音频播放器?

jquery - 表单内表单序列化问题

javascript - jquery mobile 将新 url 添加到旧 url

javascript - Angular JS 和 navigator.getPosition - 等待获取位置