javascript - 有没有一种简单的方法来合并对象并对它们的 int 属性求和而不是在 javascript es2018 中覆盖?

标签 javascript ecmascript-6 ecmascript-2016

<分区>

好吧,这就是我的想法。

我有两个示例对象

let obj1 = { x: 60 };

let obj2 = { x: 9 };

我想合并这些对象,使它们的整数属性也将组合在一起,而不是相互覆盖,所以最终结果将是

let obj3 = { x: 69 };

所以我研究了 Object.assign,但是这个函数只合并属性,如果其他对象有一个同名的属性,它有利于第一个对象的属性,并且不对整数属性求和.

当然,我可以创建一个函数来循环遍历每个对象的属性并创建一个具有求和属性的新对象,但这会更长,我想知道是否已经有一个函数可以轻松完成它Object.assign 的行为方式。

谢谢。

最佳答案

如果你想使用 Lodash 库,你可以使用 mergeWith 方法。

let obj1 = { x: 60, b: "foo", c: {y: 3, x: 'bar'} };
let obj2 = { x: 9, a: 'bar', c: {y: 4} };

const sum = _.mergeWith(obj1, obj2, (a, b) => {
  if (_.every([a, b], _.isNumber)) return a + b;
})

console.log(sum)
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.10/lodash.js"></script>

关于javascript - 有没有一种简单的方法来合并对象并对它们的 int 属性求和而不是在 javascript es2018 中覆盖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54692558/

相关文章:

javascript - 开始时隐藏 HTML5 视频重播按钮

javascript - 如何优化此 Javascript 函数?

javascript - 相当于react中的directory、mozdirectory、webkitdirectory?

javascript - 在 React/Typescript 中处理多个开关控件的函数

javascript - 在悬停自定义标记时显示工具提示

javascript - JSON.parse 允许 null 作为值

javascript - webpack 和 react 识别 css 类名

javascript - javascript中 "click"事件的嵌套函数调用

javascript - 理解 Javascript 中的类关键字

javascript - 如何使用 ES6/7 对 html 元素中的所有文本运行大量正则表达式替换?