Angel丶守护&雪之源 2023-03-23 10:52 采纳率: 22%
浏览 18
已结题

如何将相同条件的对象集组合成一个新数组合并到以前的数组中并且保持旧数组格式相同

例子:

let array = [
            {
                key:'text',
                label:'菜单',
                use:'f-text',
                group:'常规',
                col: 8,
                value:{
                      default:"这里是标题"
                },
            },
            {
                key:'btn_style_enable',
                label:'启用按钮样式',
                use:'f-switch',
                group:'常规',
                col: 8,
                value:{
                      default: 'no'
                },
            },
            {
                key:'number',                                                        //组合1
                label:'个数',
                use:'f-number',
                group:'常规',
                col: 8,
                fold:{
                      btn_style_enable:'yes',
                      sourse:'product',
                },
                value:{
                      default: 4
                },
            },
            {
                key:'color',                                                           //组合1
                label:'颜色',
                use:'f-color',
                group:'常规',
                col: 8,
                fold:{
                       btn_style_enable:'yes',
                      sourse:'product',
                },
                value:{
                      default:"#ececec"
                },
            },
            {
                key:'coums',
                label:'列数',
                use:'f-number',
                group:'常规',
                col: 8,
                value:{
                      default:2
                },
            },
            {
                key:'text_font_enable',
                label:'启用文本样式',
                use:'f-switch',
                group:'常规',
                col: 8,
                value:{
                      default:'no'
                },
            },
            {
                key:'text_font',                                                                 //组合2
                label:'文本样式',
                use:'f-style',
                group:'常规',
                col: 8,
                fold:{
                      text_font_enable:'yes',
                      sourse:'product',
                },
                value:{
                      default:[]
                },
            },
            {
                key:'text_number',                                                             //组合2
                label:'文字字数限制',
                use:'f-number',
                group:'常规',
                col: 8,
                fold:{
                      text_font_enable:'yes',
                      sourse:'product',
                },
                value:{
                      default:120
                },
            },
            {
                key:'btn_border',                                                        //组合1
                label:'个数',
                use:'f-color',
                group:'常规',
                col: 8,
                fold:{
                      btn_style_enable:'yes',
                      sourse:'product',
                },
                value:{
                      default: "#000"
                },
            },
        ]

//改变成array2
let array2 = [
            {
                key:'text',
                label:'菜单',
                use:'f-text',
                group:'常规',
                col: 8,
                value:{
                      default:"这里是标题"
                },
            },
            {
                key:'btn_style_enable',
                label:'启用按钮样式',
                use:'f-switch',
                group:'常规',
                col: 8,
                value:{
                      default: 'no'
                },
            },
            {    
                fold:{
                      btn_style_enable:'yes',
                      sourse:'product',
                },
                children:[
                    {
                        key:'number',                                                        //组合1
                        label:'个数',
                        use:'f-number',
                        group:'常规',
                        col: 8,
                        value:{
                              default: 4
                        },
                    },
                    {
                        key:'color',                                                           //组合1
                        label:'颜色',
                        use:'f-color',
                        group:'常规',
                        col: 8,
                        value:{
                              default:"#ececec"
                        },
                    },
                    {
                        key:'btn_border',                                                        //组合1
                        label:'个数',
                        use:'f-color',
                        group:'常规',
                        col: 8,
                        value:{
                              default: "#000"
                        },
                    },
                ]
                
            },
            {
                key:'coums',
                label:'列数',
                use:'f-number',
                group:'常规',
                col: 8,
                value:{
                      default:2
                },
            },
            {
                key:'text_font_enable',
                label:'启用文本样式',
                use:'f-switch',
                group:'常规',
                col: 8,
                value:{
                      default:'no'
                },
            },
            {
                fold:{
                      text_font_enable:'yes',
                      sourse:'product',
                },
                
                children:[
                    {
                        key:'text_font',                                                                 //组合2
                        label:'文本样式',
                        use:'f-style',
                        group:'常规',
                        col: 8,
                        value:{
                              default:[]
                        },
                    },
                    {
                        key:'text_number',                                                             //组合2
                        label:'文字字数限制',
                        use:'f-number',
                        group:'常规',
                        col: 8,
                        value:{
                              default:120
                        },
                    },
                ]
            },
        ]

这样子怎么实现

  • 写回答

1条回答 默认 最新

  • threenewbee 2023-03-23 13:14
    关注

    读取数据到一个map里面,如果已经存在,则累加,否则插入
    之后再遍历map

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 6月14日
  • 修改了问题 3月23日
  • 修改了问题 3月23日
  • 创建了问题 3月23日

悬赏问题

  • ¥20 python爬虫遇到空文本取不出来
  • ¥15 x264库中预测模式字IPM、运动向量差MVD、量化后的DCT系数的位置
  • ¥15 curl 命令调用正常,程序调用报 java.net.ConnectException: connection refused
  • ¥20 关于web前端如何播放二次加密m3u8视频的问题
  • ¥15 使用百度地图api 位置函数报错?
  • ¥15 metamask如何添加TRON自定义网络
  • ¥66 关于川崎机器人调速问题
  • ¥15 winFrom界面无法打开
  • ¥30 crossover21 ARM64版本安装软件问题
  • ¥15 mymetaobjecthandler没有进入