如何递归合并2个javascript对象?

Ben*_*enn 1 javascript arrays jquery

我有 2 个对象需要合并并保持所有属性完好无损,尝试使用 jQuery $.extend 但我无法让它工作。我尝试了所有关于如何合并 javascript 对象的帖子,但根本无法让它工作。

var thz_icon_source = {"Spinners":["spinnericon1","spinnericon2"],"Awesome":["awesomeicon1","awesomeicon2"]};
var fa_icon_source = {"Spinners":["faspinner1","faspinner2"],"Awesome":["faawesome1","faawesome2"]};
var new_source ={};
$.extend(new_source,fa_icon_source,thz_icon_source);

console.log(thz_icon_source);
console.log(fa_icon_source);
console.log(new_source);
Run Code Online (Sandbox Code Playgroud)

所需的输出应该像

{
"Spinners":["faspinner1","faspinner2","spinnericon1","spinnericon2"],
"Awesome":["faawesome1","faawesome2","awesomeicon1","awesomeicon2"]
}
Run Code Online (Sandbox Code Playgroud)

这篇文章将 两个 json/javascript 数组合并到一个数组中有一个简单的对象,我的对象与那个不同。

Dip*_*tox 5

演示

function mergeJSON(json1,json2)
{
    var result = json1 ;
    for (var prop in json2) 
    {
        if (json2.hasOwnProperty(prop)) 
        {
            result[prop] = result[prop].concat(json2[prop]);
        }
    }
    return result;
}
Run Code Online (Sandbox Code Playgroud)