寻找一些帮助如何从颤振对象列表中的用户中选择最老的年龄...
users = [
{ id: 123, name: 'Bob', age: 25},
{ id: 345, name: 'Joe', age: 44},
...
];
Run Code Online (Sandbox Code Playgroud)
Pab*_*era 17
首先确保您的列表具有正确的类型和格式:
List<Map<String, dynamic>> users = [
{"id": 123, "name": "Bob", "age": 25},
{"id": 345, "name": "Joe", "age": 44},
{"id": 35, "name": "Joxe", "age": 40},
];
Run Code Online (Sandbox Code Playgroud)
然后你可以这样做:
if (users != null && users.isNotEmpty) {
users.sort((a, b) => a['age'].compareTo(b['age']));
print(users.last['age']);
}
Run Code Online (Sandbox Code Playgroud)
另一种方法是:
if (users != null && users.isNotEmpty) {
dynamic max = users.first;
users.forEach((e) {
if (e['age'] > max['age']) max = e;
});
print(max['age']);
}
Run Code Online (Sandbox Code Playgroud)
另一个:
if (users != null && users.isNotEmpty) {
print(users.fold<int>(0, (max, e) => e['age'] > max ? e['age'] : max));
}
Run Code Online (Sandbox Code Playgroud)
而这个需要import 'dart:math':
if (users != null && users.isNotEmpty) {
print(users.map<int>((e) => e['age']).reduce(max));
}
Run Code Online (Sandbox Code Playgroud)
Leb*_*ele 13
我会使用列表reduce函数,文档在这里。
var oldestUser = users.reduce((currentUser, nextUser) => currentUser['age'] > nextUser['age'] ? currentUser : nextUser)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8957 次 |
| 最近记录: |