如何从行列表中嵌套

时间:2018-03-23 15:06:27

标签: powershell nested

我有这样的数据:

private func CreateChatRoom(creatorID: String, creatorName: String ,contactID: String, contactName: String)
    {
        let infoForCreator = ["userName": contactName, "newMessage" : String(0)]
        let infoForContact = ["userName": creatorName, "newMessage" : String(0)]



        let childUpdates = ["Messages/\(creatorID)/\(contactID)/": infoForCreator,
                            "Messages/\(contactID)/\(creatorID)/": infoForContact,
                            "ChatRoomsLite/\(creatorID)/\(contactID)/": infoForCreator,
                            "ChatRoomsLite/\(contactID)/\(creatorID)/": infoForContact
                            ]

        Constants.refs.databaseRoot.updateChildValues(childUpdates)
    }

我需要确定每个组运行的时间(这很简单,我已经完成)但我还想确定组的嵌套方式。理想情况下,我想要一个像这样的输出:

StartTime   GroupName   Process
12:00:00    Group1      Start
12:01:00    Group1      End
12:01:00    Group2      Start
12:01:00    Group3      Start
12:05:00    Group3      End
12:05:00    Group2      End

使用此代码,我已经设法接近,但我正在努力如何获得嵌套。在我的例子中,只有1个级别,但实际上可能是n级。

GroupName   ParentGroup Start       End         DurationMinutes
Group1      root        12:00:00    12:01:00    1
Group2      root        12:01:00    12:05:00    4
Group3      Group2      12:01:00    12:05:00    4

我需要递归函数吗?

1 个答案:

答案 0 :(得分:1)

您可以使用初始化为$ null的holder变量。然后,无论何时发生启动过程,该组的父级都是holder变量中的值,并且更改holder变量以保存该组的名称。每当发生结束过程时,持有者变量将设置为结束的组的父级值。