[英]how to extract data inside the list of maps and convert it into maps in dart
[英]Dart how to clone a List of Maps
我試圖從地圖列表中獲取多個值,但是每當我更改新的List值時,它也會同時更改原始地圖列表中的相同值。
如何正確克隆列表,以免發生這種情況?
final List<Map> entries = [
{'date': '2019-7-29', 'data': 85.0},
{'date': '2019-8-2', 'data': 85.0},
{'date': '2019-8-3', 'data': 85.0},
];
List<Map> getSelected() {
List<Map> obj = [];
for (var i = 0; i < 2; i++) {
obj.add(entries[i]);
obj[i]['data'] = obj[i]['data'] * 2;
}
return obj;
}
selected = getSelected();
編輯:這是建議,但似乎無法解決問題。 我猜是因為對象是通過引用傳遞的。
List<Map> getSelected(List<Map> arr) {
List<Map> obj = [];
for (var i = 0; i < 2; i++) {
obj.add(arr[i]);
obj[i]['data'] = obj[i]['data'] * 2;
}
return obj;
}
selected = getSelected(entries);
final List<Map> entries = [
{'date': '2019-7-29', 'data': 85.0},
{'date': '2019-8-2', 'data': 85.0},
{'date': '2019-8-3', 'data': 85.0},
];
List<Map> selected = new List<Map>();
entries.forEach((map) => { selected.add(new Map.from(map)) });
selected.forEach((map) => map["data"] = map["data"] * 2 );
將解決您的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.