js让两个一维数组的值合并

var a = {
a: 1,
b: 2,
c: {
a: 1
}
};
var b = {
d: 4,
c: {
b: 2,
c: [3, 4, 5]
}
};
var c = a.push(b); //请问这一步应该如何操作?
console.log(c);
/**需要得到以下的值
c = {
a: 1,
b: 2,
d: 4,
c: {
a: 1,
b: 2,
c: [3, 4, 5]
}
}
*/
请问如果需要
var a = {
a: 1,
b: [{
c: [{ e: 5 }, { f: 6 }]
},{
c: [{ e: 8 }, { f: 9 }]
}]
};
var b = {
d: 4,
b: [{
b: 2,
c: [{ a: 1 }, { b: 2 }]
}, {
b: 3,
c: [{ a: 3 }, { b: 4 }]
}]
};
同样深度合并对象,怎么执行呢,谢谢!

第1个回答  2018-12-01
function deepObjectMerge(FirstOBJ, SecondOBJ) { // 深度合并对象
    for (var key in SecondOBJ) {
        FirstOBJ[key] = FirstOBJ[key] && FirstOBJ[key].toString() === "[object Object]" ?
            deepObjectMerge(FirstOBJ[key], SecondOBJ[key]) : FirstOBJ[key] = SecondOBJ[key];
    }
    return FirstOBJ;
}

追问

请问如果需要
var a = {
a: 1,
b: [{
c: [{ e: 5 }, { f: 6 }]
},{
c: [{ e: 8 }, { f: 9 }]
}]
};
var b = {
d: 4,
b: [{
b: 2,
c: [{ a: 1 }, { b: 2 }]
}, {
b: 3,
c: [{ a: 3 }, { b: 4 }]
}]
};
同样深度合并对象,怎么执行呢,谢谢!

追答

看你的意思,可能还会有更复杂的对象!像这样的数据结构合并没什么意义,还是从实际项目中去考虑怎么组装数据的好。抱歉

本回答被网友采纳
第2个回答  2018-12-01
var c = Object.assign({}, a, b)