iOS Closures in Swift First Class Functions Higher Order Functions

How to convert an array of characters to String in Swift? Stuck, please help.

Trouble not only for me. joined() didn't work.

functions.swift
// Enter your code below
extension String {
  func transform(_ argument: (String)->String) -> String {
    return argument(self)
  }

  func removeVowels(from string: String) -> String {
    var output = ""
    for char in string.characters {
      if !(char == "a" || char == "A" || char == "e" || char == "E"
        || char == "i" || char == "I" || char == "o" || char == "O"
        || char == "u" || char == "U") {
        output.append(char)
        }
    }
  return output.joined()


  }
}

1 Answer

Jeff McDivitt
Jeff McDivitt
23,964 Points

You just need to return output, you do not need the joined(), you are looping through and returning the output

extension String{

    func transform(_ argument : (String) -> String) -> String {
        return  argument(self)
    }
}

func removeVowels(from value: String) -> String {
    var output = ""

    for char in value.characters {
        if !(char == "a" || char == "A" || char == "e" || char == "e"
            || char == "i" || char == "I" || char == "o" || char == "O"
            || char == "u" || char == "U") {
            output.append(char)
        }
    }
    return output
}

let result = "Hello, World!".transform(removeVowels)