Dart映射,如何<map>根据其密钥ID替换列表中的特定键值?


void main() {
List<Map<String, dynamic>> products = [
{'id': 24, 'time': '2019-11-24 00:00:00.000'},
{'id': 36, 'time': '2019-11-23 00:00:00.000'},
{'id': 48, 'time': '2019-11-24 00:00:00.000'},
];

在上面的代码中,我想将'id'48的'time'条目'2019-11-24 00:00:00.000'替换为'2019-10-26 00:00:00.000]。

您可以尝试以下操作:

products.whereFirst((x) => x["id"] == 48)["time"] = "2019-10-26 00:00:00.000";

这里有另一种方法:

void main() { 
List<Map<String, dynamic>> products = [
{'id': 24, 'time': '2019-11-24 00:00:00.000'},
{'id': 36, 'time': '2019-11-23 00:00:00.000'},
{'id': 48, 'time': '2019-11-24 00:00:00.000'},
];

products = products.map((product){
if(product["id"] == 48){
return {...product, 'time': '2019-10-26 00:00:00.000'};
}
return product;
}).toList();

print(products.toString());
}

最新更新