JS与JQ合并对象

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS与JQ合并对象相关的知识,希望对你有一定的参考价值。

如果需要将下面的json对象合并:

  1. var a ={"a":"1","b":"2"}
  2. var b ={"c":"3","d":"4","e":"5"}

想得到结果:

  1. var c ={"a":"1","b":"2","c":"3","d":"4","e":"5"}

直接使用js的话,可以用一下方法:

  1. <script>
  2. function extend(des, src, override){
  3.    if(src instanceof Array){
  4.        for(var i = 0, len = src.length; i < len; i++)
  5.             extend(des, src[i], override);
  6.    }
  7.    for( var i in src){
  8.        if(override || !(i in des)){
  9.            des[i] = src[i];
  10.        }
  11.    }
  12.    return des;
  13. }
  14. var a ={"a":"1","b":"2"}
  15. var b ={"c":"3","d":"4","e":"5"}
  16. var c = extend({}, [a,b]);
  17. alert(c.a);
  18. </script>

当然如果你加载了jquery,那就更方便了。可以使用$.extend()方法,该方法有两种模式;

jQuery.extend( target [, object1 ] [, objectN ] )  #将后面的对象合并到新的对象中{}

jQuery.extend( [deep ], target, object1 [, objectN ] )  #将后面的对象合并到新的对象中{},如果深度deep为true则将递归合并成为新对象.

实例:

    1. <script type="text/javascript">
    2.     # 请记得先加载jquery
    3.     var a ={"a":"1","b":"2"}
    4.     var b ={"c":"3","d":"4","e":"5"}
    5.     var c = $.extend({}, a,b);
    6.     console.log(c);
    7. </script>
      如果是:
      var c = $.extend({}, [a,b]);
      -->{"0":{"a":"1","b":"2"},"1":{"c":"3","d":"4","e":"5"}}

以上是关于JS与JQ合并对象的主要内容,如果未能解决你的问题,请参考以下文章

前端 JavaScript 设计模式前奏--面向对象JQ实例与总结

前端 JavaScript 设计模式前奏--面向对象JQ实例与总结

如何将 JavaScript 类实例与对象合并?

JQ与JS的相互转换

2018-08-26 jQuery与javaScript的区别及核心方法

jq与js的区别