• 请不要在回答技术问题时复制粘贴 AI 生成的内容
pianjiao
V2EX  ›  程序员

在线蹲一个方法, JS 实现!

  •  
  •   pianjiao · Mar 22, 2022 · 2814 views
    This topic created in 1518 days ago, the information mentioned may be changed or developed.
    var a = {
        a: 1,
        b:2
    }
    
    var b = {
        a: [1],
        b: [2]
    }
    
    var c = {
        a: {
            isShow: true,
            extends: [2],
        },
        b: {
            isShow: false,
            extends: [3],
        }
    }
    
    var d = {
        a: {
            rule: [1],
            isShow : true,
            extends: [2],
            value : 1
        },
        a: {
            rule: [2],
            isShow : false,
            extends: [3],
            value : 2
        },
    }
    

    蹲一个 a b c 合并成 d 的方法 JS

    siteshen
        2
    siteshen  
       Mar 22, 2022   ❤️ 1
    var entries = Object.entries(a).map(([k, v]) => [k, { rule: b[k], ...c[k], value: v }]);
    var obj = Object.fromEntries(entries);
    console.log(obj);

    // {
    // a: { rule: [ 1 ], isShow: true, extends: [ 2 ], value: 1 },
    // b: { rule: [ 2 ], isShow: false, extends: [ 3 ], value: 2 }
    // }
    autoxbc
        3
    autoxbc  
       Mar 22, 2022   ❤️ 1
    类似 #2 这种,用 for ... in 遍历就行,可以节约很多构造成本
    3dwelcome
        4
    3dwelcome  
       Mar 22, 2022 via Android   ❤️ 1
    不用自己写,了解一下 jsonnet ,就是用来给 json 打补丁,让 a+b+c=d 。
    liluwang5210
        5
    liluwang5210  
       Mar 23, 2022   ❤️ 1
    d 不知道是不是写错了,var d = {
    a: {
    rule: [1],
    isShow : true,
    extends: [2],
    value : 1
    },
    b: {
    rule: [2],
    isShow : false,
    extends: [3],
    value : 2
    },
    }
    写了比较笨的
    for (const key in a) {
    if (a.hasOwnProperty.call(a, key)) {
    c[key].value = a[key];

    }
    }
    for (const key in b) {
    if (b.hasOwnProperty.call(b, key)) {
    c[key].role = b[key];

    }
    }
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2816 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 14:16 · PVG 22:16 · LAX 07:16 · JFK 10:16
    ♥ Do have faith in what you're doing.