title: How to understand this rx-swift map function
body: <p>I have some textfileds in my viewcontroller. And use rx-swift to observer the .editingDidBegin event.</p>
  
  <p>I want to judge which textfield sends event. </p>
  
  <pre><code>let tags = txtFieldArray.map{($0.rx.controlEvent(.editingDidBegin), $0.tag)}
              .map{obs, tag in obs.map{tag}}
  let value = Observable.merge(tags)
          value.bind {[weak self] (tags) in
              guard let strongSelf = self else { return }
              if let view = strongSelf.ipEnteryView.viewWithTag(tags) as? UITextField {
                  strongSelf.viewMode.changeTextFiledBottomColor(view, true)
              }
              }.disposed(by: disposedBag)
  </code></pre>
  
  <p>The txtFieldArray's first map return a array, element is tuples(as my understand),first is controlEvent, second is a int value. What i don't understand is the second map function. Obs is contrlEvent type. Why obs.map{tag} return a observable. And how to understand map{obs, tag in obs.map{tag}}?
  Thank you very much!</p>