getData static method
Implementation
static List<WeatherMsgData> getData(Map data) {
if (data['data'] is List) {
return List.from(data['data'])
.whereType<Map>()
.map((item) => WeatherMsgData.from(item))
.toList();
}
List<WeatherMsgData> dataList = [];
List<String> dates = _splitField(data["date"]);
List<String> codes = _splitField(data["weatherCode"]);
List<String> maxs = _splitField(data["max"]);
List<String> mins = _splitField(data["min"]);
final length = [dates.length, codes.length, maxs.length, mins.length]
.where((item) => item > 0)
.fold<int>(
0,
(prev, item) => prev == 0
? item
: prev < item
? prev
: item);
for (int i = 0; i < length; i++) {
dataList.add(WeatherMsgData(
date: i < dates.length ? dates[i] : '',
code: i < codes.length ? codes[i] : '',
max: i < maxs.length ? WeatherMsgData._toDouble(maxs[i]) : 0,
min: i < mins.length ? WeatherMsgData._toDouble(mins[i]) : 0,
));
}
return dataList;
}