Flutter/Dart中如何从动态列表提取start日期生成新列表
从动态预订列表中提取所有"start"日期的实现方法
问题描述
我有一个如下所示的动态列表,希望创建另一个仅包含"start"日期的列表,请问该如何实现?
"bookings": [ { "reference": "G1TVTZYSXZRHIIINN888", "station": "G61703000566", "connector": 0, "start": "2021-07-22T17:00:00.000+00:00", "stop": "2021-07-22T18:00:00.000+00:00", "card": "D2E3422B", "status": "Expired" }, { "reference": "VD2MQO39CQ1PSHMUDIHT", "station": "G61703000567", "connector": 1, "start": "2021-07-22T18:00:00.000+00:00", "stop": "2021-07-22T19:00:00.000+00:00", "card": "D2E3422B", "status": "Expired" }, { "reference": "EPQ05Q8DAHCOVNXMQCM3", "station": "G61703000567", "connector": 1, "start": "2021-07-22T20:00:00.000+00:00", "stop": "2021-07-22T21:00:00.000+00:00", "card": "D2E3422B", "status": "Expired" } ]
解决方案
Python 实现
用列表推导式快速提取目标字段:
# 假设数据已加载为字典格式,如data = {"bookings": [...]} start_dates = [booking["start"] for booking in data["bookings"]] print(start_dates)
输出结果:
['2021-07-22T17:00:00.000+00:00', '2021-07-22T18:00:00.000+00:00', '2021-07-22T20:00:00.000+00:00']
JavaScript 实现
使用数组map方法遍历提取:
// 假设bookings数组已定义 const bookings = [/* 你的预订数据 */]; const startDates = bookings.map(booking => booking.start); console.log(startDates);
输出结果:
["2021-07-22T17:00:00.000+00:00", "2021-07-22T18:00:00.000+00:00", "2021-07-22T20:00:00.000+00:00"]
Java 实现
可以用普通循环或Stream API两种方式:
import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; public class DateExtractor { public static void main(String[] args) { List<Booking> bookings = new ArrayList<>(); // 填充预订数据... // 方式1:普通循环 List<String> startDatesLoop = new ArrayList<>(); for (Booking booking : bookings) { startDatesLoop.add(booking.getStart()); } // 方式2:Stream API List<String> startDatesStream = bookings.stream() .map(Booking::getStart) .collect(Collectors.toList()); } } // 对应的Booking实体类 class Booking { private String reference; private String station; private int connector; private String start; private String stop; private String card; private String status; // 构造方法、getter/setter省略 public String getStart() { return start; } }
内容的提问来源于stack exchange,提问作者Bill Tertis
相关产品推荐
相关产品推荐

