jq,json对象拼接

var a = {'type': 1, list: [{'id': 1, 'name': aa},{'id': 2, 'name': bb}]};
var b = {'type': 2, list: [{'id': 3, 'name': cc},{'id': 4, 'name': bb}]};
结果输出
var c = [{'type': 1, list: [{'id': 1, 'name': aa},{'id': 2, 'name': bb}]},{'type': 2, list: [{'id': 3, 'name': cc},{'id': 4, 'name': bb}]}]
这个结果直接 var c = [a,b]吗?

扬帆大鱼
浏览 1756回答 1
1回答

当年话下

方法、函数都在下面,深复制/浅复制随便选,函数用 ES6 写的var aa = 1,    bb = 2,    cc = 3,    dd = 4;var a = { 'type': 1, list: [{ 'id': 1, 'name': aa }, { 'id': 2, 'name': bb }] };var b = { 'type': 2, list: [{ 'id': 3, 'name': cc }, { 'id': 4, 'name': bb }] };var c = [{ 'type': 1, list: [{ 'id': 1, 'name': aa }, { 'id': 2, 'name': bb }] }, { 'type': 2, list: [{ 'id': 3, 'name': cc }, { 'id': 4, 'name': bb }] }]var resultDeep = [JSON.parse(JSON.stringify(a)), JSON.parse(JSON.stringify(b))];var resultShallow = [a, b];console.log(JSON.stringify(resultShallow) === JSON.stringify(c));//trueconsole.log(JSON.stringify(resultDeep) === JSON.stringify(c));//true//函数提炼function splicingObjects(deepOrShallow, ...obj) {    let result = [];    if (deepOrShallow === 'deep') {        obj.forEach((obj) => { result.push(JSON.parse(JSON.stringify(obj)));});    } else if (deepOrShallow === 'shallow') {        result = [...obj];    }    return result;}let resultDeep2 = splicingObjects('deep',a,b);let resultShallow2=splicingObjects('shallow',a,b);console.log(JSON.stringify(resultShallow2) === JSON.stringify(c));//trueconsole.log(JSON.stringify(resultDeep2) === JSON.stringify(c));//true
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript