10 ответов:
вы хотите
concatметод.var finalObj = json1.concat(json2);
при первом появлении слово "merg" заставляет думать, что вам нужно использовать .расширить, что является правильным способом jQuery для "слияния" объектов JSON. Однако,
$.extend(true, {}, json1, json2);приведет к тому, что все значения, имеющие одно и то же имя ключа, будут переопределены последним, указанным в параметрах. Как показывает обзор вашего вопроса, это нежелательно.то, что вы ищете, - это простая функция javascript, известная как .функция concat. Которая будет работать например:
var finalObj = json1.concat(json2);хотя это не родная функция jQuery, вы можете легко добавить ее в библиотеку jQuery для простого использования в будущем следующим образом:
;(function($) { if (!$.concat) { $.extend({ concat: function() { return Array.prototype.concat.apply([], arguments); } }); } })(jQuery);а затем вспомнить его по желанию, как:
var finalObj = $.concat(json1, json2);вы также можете использовать его для нескольких объектов массива этого типа с помощью:
var finalObj = $.concat(json1, json2, json3, json4, json5, ....);и если вы действительно хотите его стиль jQuery и очень короткий и сладкий (ака сокращен)
;(function(a){a.concat||a.extend({concat:function(){return Array.prototype.concat.apply([],arguments);}})})(jQuery);;(function($){$.concat||$.extend({concat:function(){return Array.prototype.concat.apply([],arguments);}})})(jQuery); $(function() { var json1 = [{id:1, name: 'xxx'}], json2 = [{id:2, name: 'xyz'}], json3 = [{id:3, name: 'xyy'}], json4 = [{id:4, name: 'xzy'}], json5 = [{id:5, name: 'zxy'}]; console.log(Array(10).join('-')+'(json1, json2, json3)'+Array(10).join('-')); console.log($.concat(json1, json2, json3)); console.log(Array(10).join('-')+'(json1, json2, json3, json4, json5)'+Array(10).join('-')); console.log($.concat(json1, json2, json3, json4, json5)); console.log(Array(10).join('-')+'(json4, json1, json2, json5)'+Array(10).join('-')); console.log($.concat(json4, json1, json2, json5)); });center { padding: 3em; }<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> <center>See Console Log</center>
Так как вы используете jQuery. Как насчет jQuery.метод extend ()?
http://api.jquery.com/jQuery.extend/
описание: объединить содержимое двух или более объектов вместе в первый объект.
вы можете сделать это с помощью Es 6 новая функция:
var json1 = [{id:1, name: 'xxx' , ocupation : 'Doctor' }]; var json2 = [{id:2, name: 'xyz' ,ocupation : 'SE'}]; var combineJsonArray = [...json1 , ...json2]; //output should like this [ { id: 1, name: 'xxx', ocupation: 'Doctor' }, { id: 2, name: 'xyz', ocupation: 'SE' } ]или вы можете поместить дополнительную строку или что-нибудь между двумя массивами json :
var json3 = [...json1 ,"test", ...json2]; // output should like this : [ { id: 1, name: 'xxx', ocupation: 'Doctor' }, 'test', { id: 2, name: 'xyz', ocupation: 'SE' } ]
вы можете использовать новый оператор JS spread, если используете es6:
var json1 = [{id:1, name: 'xxx'}] var json2 = [{id:2, name: 'xyz'}] var finalObj = [...json1, ...json2] console.log(finalObj)
попробуйте код ниже, используя метод расширения jQuery:
var json1 = {"name":"ramesh","age":"12"}; var json2 = {"member":"true"}; document.write(JSON.stringify($.extend(true,{},json1,json2)))
var json1=["Chennai","Bangalore"]; var json2=["TamilNadu","Karanataka"]; finaljson=json1.concat(json2);
Comments