为了账号安全,请及时绑定邮箱和手机立即绑定

jq,json对象拼接

jq,json对象拼接

扬帆大鱼 2019-03-03 12:19:24
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]吗?
查看完整描述

1 回答

?
当年话下

TA贡献1890条经验 获得超9个赞

方法、函数都在下面,深复制/浅复制随便选,函数用 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));//true

console.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));//true

console.log(JSON.stringify(resultDeep2) === JSON.stringify(c));//true


查看完整回答
反对 回复 2019-03-11
  • 1 回答
  • 0 关注
  • 1754 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号