-2

I have quick question about Swift algorithm, assuming I have a string “New Message” which option I need to use to get just initials NM ?

KirillC
  • 780
  • 2
  • 8
  • 21
  • https://stackoverflow.com/questions/35285978/get-the-initials-from-a-name-and-limit-it-to-2-initials https://stackoverflow.com/questions/34540332/how-to-get-the-first-character-of-each-word-in-a-string – Larme May 04 '21 at 14:38
  • 1
    [How to ask a good question](https://stackoverflow.com/help/how-to-ask) – Joakim Danielson May 04 '21 at 15:03

1 Answers1

0

I would use map to get the first character of each word in the string, then use reduce to combine them.

let string = "New Message"
let individualWords = string.components(separatedBy: " ")
let firstCharacters = individualWords.map { $0.prefix(1) }.reduce("", +)
print("firstCharacters is \(firstCharacters)")

Result:

firstCharacters is NM

Edit: Per @LeoDabus' comment, joined is more concise than reduce("", +), and does the same thing.

let firstCharacters = individualWords.map { $0.prefix(1) }.joined()
aheze
  • 24,434
  • 8
  • 68
  • 125