JS对象合并

JavaScript027

JS对象合并,第1张

$.extend(object1, object2)   将object2合并到object1中

tips :1. 如果只为$.extend()指定了一个参数,则意味着参数target被省略。此时,target就是jQuery对象本身。通过这种方式,我们可以为全局对象jQuery添加新的函数。

        2. 如果多个对象具有相同的属性,则后者会覆盖前者的属性值。

将多个对象合并成一个

ex:let user = {name:'无敌人',age:19}

        let page = {pageSize:10,currentPage:1}

        let newObj = {}

        let a=Object.assign(newObj,user,page)

tips:$.extend()最终也许会改变其中的一个对象,而Object.assign()会返回一个新的合并了的对象 而传入的这些对象不会被改变

function combineConfig(config)

{

let defconfig = {

name : "我是默认name",

age : "我是默认age:12",

}

defconfig = {...defconfig,...config}

return defconfig

}

function combineConfig_Object(config)

{

let defconfig = {

name : "我是默认name Object",

age : "我是默认age:12 Object",

}

Object.assign(defconfig, config)

return defconfig

}

function combineConfig_jquery(config)

{

let defconfig = {

name : "我是默认name jquery",

age : "我是默认age:12 jquery",

}

$.extend(defconfig, config)

return defconfig

}

function combineConfig_for(config)

{

let defconfig = {

name : "我是默认name jquery",

age : "我是默认age:12 jquery",

}

for (let k in config)

{

defconfig[k] = config[k]

}

return defconfig

}

Object.assign() 方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象,它将返回目标对象。

实际问题中我是做了map处理,变成返回多个obj,所以想着如何合并多个object

但最后发现,其实直接定义个全局 params ,然后在map方法里依次加到 params 里就好了.就不用考虑合并多个obj了

故上面的Object.assign 套用例子可以是