JS对象合并

JavaScript013

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 createURL (url,param/*链接和参数*/){

            Object.each(param,function(item,key){

                var link = '&' + key + "=" + item

                myURL.link += link                

            })

            myURL.link = url + "?" + myURL.link.substr(1)

            return myURL.link.replace(' ','')

        }

举个简单例子,希望你能明白,

1、下面输出结果是"jim",而不是"tom",

是因为数组中保存的都是指向json对象a的地址,

dd[0],dd[1],dd[2],dd[3]对象指向的内存地址相同,

当修改其中一个dd[0]的属性值的时候,数组所有元素指向的对象属性值都改变了。

var

dd

=

[]var

a

=

{

"cname":

"tom"

}for

(var

i

=

0

i

<4

i++)

{

dd[i]

=a}dd[0].cname

=

"jim"alert(dd[2].cname)2、下面输出结果是0,而不是1,

是因为数组元素dd[0],dd[1],dd[2],dd[3]对应的内存地址都不同,互不干扰。

var

dd

=

[]var

a

=

0for

(var

i

=

0

i

<4

i++)

{

dd[i]

=a}dd[0]=1alert(dd[2])

希望对你有帮助!