Handling lists using the Repeat with Each action in Shortcuts
This section discusses using the data returned by the Dark Sky API (in the previous topic), to retrieve the average temperature for each day in the forecast using the Repeat with Each action. The Repeat with Each action allows a shortcut to act on every item in a list, one after another.
To work with the set of eight days of data, you must pass the output into the Repeat with Each action, then set up actions in each loop to retrieve a single day’s data at a time.
To get the average daily high and low temperatures, create a repeat loop by using a List action with two Repeat Item variables. Tap the first Repeat Item variable, change the content type to Dictionary, then enter the key temperatureMax
to obtain the maximum temperature of each day. Do the same for the second Repeat Item variable, providing the key temperatureMin
to obtain the minimum temperature of each day.
Next, use the Calculate Statistics action to average the two new values and use the Round Number action to make the value a nice and readable version of average temperature for the day.
To make sure the raw data values are useful once they’re passed out of the repeat loop, extract the day of the week to use in your alert. Using another Repeat Item variable set to the time
key, you can extract a time value from the API and use the Adjust Date action to calculate the correct date from the time value. Place the variables for the day of the week (extracted from Adjust Date) and average temperature (extracted from Round Number), into a Text action, so that the final output of each loop is a line of text with the newly formatted data.
Once the shortcut is run and reaches the Repeat with Each action, it loops through each day’s dictionary of data, performs the calculations, then passes the result into the End Repeat marker. After all eight repeats, all the numbers are grouped together, passed out of the End Repeat marker and available to use as input in another action, or retrievable as a Repeat Results variable.
Continue to the next section to learn how to display your custom weather data as an alert.