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 }
  • 相关阅读:
    jquery层级选择器学习笔记
    html 大于号 小于号 空格显示
    MySql存储过程二---变量
    MySql 存储过程一--基本语法及参数介绍
    MySql delimiter
    MySql 关联查询
    MySql 数据库导入导出
    markdown 换行
    WPF 之 MVVM
    对memtester源码分析
  • 原文地址:https://www.cnblogs.com/winyh/p/11772891.html
Copyright © 2011-2022 走看看