合并两个对象而不覆盖

编程入门 行业动态 更新时间:2024-10-11 09:29:17
本文介绍了合并两个对象而不覆盖的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我有一个类似的defaultObject:

I have a defaultObject like that:

var default = { abc: "123", def: "456", ghi: { jkl: "789", mno: "012" } };

我还有另外一个:

var values = { abc: "zzz", ghi: { jkl: "yyy", } };

如何将这2个对象与以下结果合并(无覆盖)?

How can I merge those 2 objects with the following result (no override)?

var values = { abc: "zzz", def: "456", ghi: { jkl: "yyy", mno: "012" } };

(我不想更改默认对象!)

(I don't want to change the default object!)

推荐答案

现在所有现代浏览器都支持ES2015,原生 Object.assign 可用于扩展对象

With ES2015 now being supported in all modern browsers, the native Object.assign can be used to extend objects

Object.assign({}, _default, values)

Object.assign

请注意默认是保留关键字,并且可以不能用作变量名称

Note that default is a reserved keyword, and can't be used as a variable name

原始答案,写于2013年:

The original answer, written in 2013 :

由于这是用jQuery标记的,你可以使用 $ .extend 对于简单的跨浏览器解决方案

Since this is tagged with jQuery, you could use $.extend for a simple cross-browser solution

var temp = {}; $.extend(true, temp, _default, values); values = temp;

更多推荐

合并两个对象而不覆盖

本文发布于:2023-11-29 02:41:59,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1644967.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:而不   对象   两个

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!