从Groovy对象列表中移除指定属性的最佳实现方式
最短实现方案
你示例中的初始化写法更符合Dart中Map<String, dynamic>类型的使用场景,对应最短实现仅需1行代码:
personList.forEach((item) => item.remove('age'));
该方法会直接遍历修改原列表内的每个Map对象,删除age键,不需要额外给personList重新赋值。
如果你的列表元素是自定义Person实体类,对应最短实现如下:
// 直接生成仅保留name属性的新对象列表 personList = personList.map((p) => Person(name: p.name)).toList(); // 若Person类实现了copyWith方法也可以这么写 personList = personList.map((p) => p.copyWith(age: null)).toList();
如果不想修改原列表数据,需要生成全新的Map结构列表,可以用以下写法:
personList = personList.map((p) => {'name': p['name']}).toList();
内容的提问来源于stack exchange,提问作者Anuresh Verma
相关产品推荐
相关产品推荐

