0

I'm trying to create an array of numbers from 1 - 59. I've got the basic array coded out, but for the life of me I can't figure out how to get numbers 1, 2, 3, 4, 5, 6, 7, 8, 9 to have a leading zero, so that they're double digits which makes it look nicer with all the other 2 digit numbers.

How do I get that leading zero with the .map function that I'm already using, would an if statement work?

Here is my code for what my array is and the result I get.

let arrayOfMinutes = (0...59).map { "\($0)" }

["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", "51", "52", "53", "54", "55", "56", "57", "58", "59"]
rmaddy
  • 314,917
  • 42
  • 532
  • 579
syds
  • 322
  • 3
  • 12
  • Use the info from the duplicate with your `map`. – rmaddy Aug 04 '19 at 05:21
  • thanks, i appreciate the help, but I've already read through that question and have been trying to use the solutions there with my current code, I still can't figure it out. That's why I posted this. – syds Aug 04 '19 at 05:27
  • Show your attempt to use `String(format:)` in your `map`. – rmaddy Aug 04 '19 at 05:28
  • let arrayOfMinutes = String(format: "%02d", (0...59).map { "\($0)" }) i've tried other ways that i've already since deleted – syds Aug 04 '19 at 05:31
  • The `String(format:)` goes inside the `map`. – rmaddy Aug 04 '19 at 05:34
  • I tried that earlier and that lead to other errors inside my project, notably my PickerView. I tried this...... let arrayOfMinutes = (String(format: "%02d", (0...59 as! CVarArg))).map { "\($0)" } which also led me to Thread 1: signal SIGABRT error. – syds Aug 04 '19 at 05:37
  • As I said, inside the `map`. `let arrayOfMinutes = (0...59).map { String(format: "%02d", $0) }`. – rmaddy Aug 04 '19 at 05:40
  • Thanks rmaddy, i'm still relatively new to higher order functions. I understand where my mistake was. – syds Aug 04 '19 at 05:44
  • Just to spark your imagination, here are 2 other ways you could do it: `(0...59).map { String("0\($0)".suffix(2)) }` and `(0...59).map { $0 < 10 ? "0\($0)" : "\($0)" }`. – vacawama Aug 04 '19 at 11:39
  • or `(0...9).map { "0\($0)" } + (10...59).map { "\($0)" }`. – vacawama Aug 04 '19 at 11:47

0 Answers0