代码之家  ›  专栏  ›  技术社区  ›  ArushRaj

在javascript中获取字符串数组中对象的所有叶节点属性的函数

  •  -2
  • ArushRaj  · 技术社区  · 3 年前

    请您帮助在javascript中构建一个函数,以从给定的输入中获取所述的输出。

    输入:对象(可能是嵌套对象)

    例子:

    {

    “消息”:“字符串”,

    “数据1”:{

        "Output1": {
    
            "leaf1": "abc",
    
            "Leaf2": "123"
    
        }
    
    }
    

    “数据2”:{

        "Output2": {
    
            "leaf3": "abc",
    
            "leaf4": "123"
    
        }
    
    }  
    

    }

    输出:字符串数组

    例子: str=[“message”、“data1.Output1.leaf1”、“data1.Output1.leaf2”、“data2.Output2.leaf3”、“data2.Output2.leaf4”]

    1 回复  |  直到 3 年前
        1
  •  0
  •   R4ncid    3 年前

    像这样的东西会管用的

    const getBranches = (data, prefix='') => {
      if (typeof(data) !== 'object') {
        return prefix.substr(1)
      }
      return Object.entries(data).flatMap(([k, v]) => getBranches(v, [...prefix.split('.'), k].join('.')))
    
      }
    
      const data = {
        "message": "string",
        "data1": {
          "Output1": {
            "leaf1": "abc",
            "Leaf2": "123"
          }
        },
        "data2": {
          "Output2": {
            "leaf3": "abc",
            "leaf4": "123"
          }
        }
      }
    
    
    console.log(getBranches(data))