Swift:递归循环和展平数组

时间:2019-05-23 19:04:07

标签: arrays swift recursion

我想更好地理解递归循环,并用Swift或其他任何语言来扁平化。

我有一个简单的Swift类


class Survey { 
      let items: [SurveyItem]?
}

class SurveyItem { 
      let id: String?
      let items: [SurveyItem]?
}

一个调查具有items,每个item可以拥有更多自己的类型。

我想编写一个将调查中的所有项目和子项目组合成单个平面数组的函数

1 个答案:

答案 0 :(得分:0)

Users

现在,您可以要求任何header('HTTP/1.1 500 Internal Server Error');protocol SurveyItemVending { var items: [SurveyItem]? { get } } extension Survey: SurveyItemVending { } extension SurveyItem: SurveyItemVending { } extension SurveyItemVending { var allItemsRecursively: [SurveyItem] { let items = self.items ?? [] return items + items.flatMap { $0.allItemsRecursively } } } 为其Survey