flutter数组根据某个字段分组
时间: 2023-07-29 16:06:13 浏览: 290
Flutter List数组避免插入重复数据的实现
在 Flutter 中,可以使用 `groupBy` 方法将一个 List 根据某个字段分组。假设我们有一个类 Person:
```
class Person {
String name;
int age;
Person({this.name, this.age});
}
```
我们可以将一个 Person 对象的 List 根据年龄分组:
```
List<Person> persons = [
Person(name: 'Alice', age: 20),
Person(name: 'Bob', age: 30),
Person(name: 'Charlie', age: 20),
Person(name: 'David', age: 30),
Person(name: 'Eve', age: 20),
];
Map<int, List<Person>> groups = persons.groupBy((person) => person.age);
print(groups);
```
输出结果为:
```
{20: [Person(name: Alice, age: 20), Person(name: Charlie, age: 20), Person(name: Eve, age: 20)], 30: [Person(name: Bob, age: 30), Person(name: David, age: 30)]}
```
其中,`groupBy` 方法接收一个回调函数,该函数返回一个用于分组的键值。在本例中,我们使用 `person.age` 作为键值,将 Person 对象分成了两组。最终返回的结果是一个 Map,键值为分组的键值,值为该组的 Person 对象 List。
阅读全文