#list #flutter #dictionary #dart
#Список #flutter #словарь #dart
Вопрос:
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'},
];
В приведенном выше коде я хочу заменить запись ‘time’ ‘2019-11-24 00:00:00.000’ на ‘2019-10-26 00:00:00.000’ для ‘id’ 48.
Комментарии:
1. Если идентификатор уникален, у вас неправильная структура данных. Это должна быть одна карта с идентификатором в качестве ключа. Замена его была бы простым назначением. Перебор списка для поиска конкретного почти всегда пахнет кодом.
Ответ №1:
Вы можете попробовать что-то вроде этого:
products.where((x) => x["id"] == 48).first["time"] = "2019-10-26 00:00:00.000";
Комментарии:
1. @Akif, ваши ответы на flutter действительно информативны.
2. Спасибо, @Ketan Ramteke 🙂
Ответ №2:
Вот еще один способ, как вы можете это сделать:
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());
}
Комментарии:
1. Спасибо, дорогой, «return {…product, ‘time’: ‘2019-10-26 00:00:00.000’};» сработало на меня 🙂
2. Рад, что это помогло, счастливого кодирования.