JS对象合并

JavaScript017

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()会返回一个新的合并了的对象 而传入的这些对象不会被改变

Node.js中合并两个复杂对象代码如下:

var obj1 = {

"name" : "myname",

"status" : 0,

"profile": { "sex":"m", "isactive" : true},

"strarr":["one", "three"],

"objarray": [

{

"id": 1,

"email": "a1@me.com",

"isactive":true

},

{

"id": 2,

"email": "a2@me.com",

"isactive":false

}

]

}

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

}