zoukankan      html  css  js  c++  java
  • 深层对象转深层数组(重点:先把对象转数组,直接for in 遍历对象不太可行)

    var json: {
                PRow0: { 
                    style: { 
                         10 
                    } 
                },
                PTable1: { 
                    style: { 
                        height: 20 
                    } 
                }
            }
    
    const jsonToArrTree = (json) => {
        let data = Object.keys(json).map( (item) =>  {
            let ops = {
                title:item,
                key:nanoid(),
                children:[]
            }
            let child = json[item]
            if(typeof child == "object"  && Object.keys(child).length > 0){
                ops.children = jsonToArrTree(child)
            }
            return ops
        })
        return data
    }
    
    转换结果 [ { "title": "PRow0", "key": "LzgVGHyEkwyUAUVOSOt_u", "children": [ { "title": "style", "key": "0KNgtu0C4Cg_8QalqAcTm", "children": [ { "title": "width", "key": "jN4HAiWnfFXNz4csrtEQz", "children": [] } ] } ] }, { "title": "PTable1", "key": "Y4i4tq8C12rXbH_GBtAXl", "children": [ { "title": "style", "key": "2bD_q7ZfEu3yZILLsUfSn", "children": [ { "title": "height", "key": "OOg79AeMP-BQoDmF7wzlX", "children": [] } ] } ] } ]

      

    每个字段都是上一级父级字段的拼接

    let pre = '' const jsonToArrTree = (json) => { let data = Object.keys(json).map( (item) => { pre += (pre ? '.':'') + item let ops = { title:pre, key:nanoid(), children:[] } let child = json[item] console.log(pre) if(typeof child == "object" && Object.keys(child).length > 0){ ops.children = jsonToArrTree(child) } return ops }) pre = '' return data }
  • 相关阅读:
    解决方案solution
    Marshal类
    鼠标钩子WH_MOUSE_LL和WH_MOUSE的区别
    DllImport
    打包.py文件成.exe
    C++定义全部变量注意项
    类.cpp文件不识别类.h所定义的结构体问题
    C++判断文件是否存在
    博客专栏
    软件测试基础知识
  • 原文地址:https://www.cnblogs.com/winyh/p/11772891.html
Copyright © 2011-2022 走看看