【发布时间】:2019-12-17 23:09:01
【问题描述】:
我正在尝试从地图列表中获取多个值,但每当我更改新列表值时,它也会更改原始地图列表中的相同值。
如何正确克隆列表,以免发生这种情况?
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);
【问题讨论】:
标签: list dictionary flutter dart