這是我第一次使用 Dart,我被一個簡單的東西困住了。
我有一個簡單的Map,我需要從這個地圖中洗掉一些專案并修改內容。
我有這個:
Map<String, List<String>> dataset = {
'apple': ['apple1', 'apple2', 'apple3'],
'pear': ['pear1', 'pear2'],
'ananas': ['ananas1', 'ananas2', 'ananas3'],
'orange': ['orange1', 'orange2', 'orange3', 'orange4'],
};
List<Map<dynamic, String>> fruits = [
{'key': 'pear', 'labelToShow': 'Pear fruit'},
{'key': 'ananas', 'labelToShow': 'My ananas'},
];
我想要這個:
Map<String, Map<String, List<String>>> result = {
'pear': {
'values': ['pear1', 'pear2'],
'labelToShow': 'Pear fruit'
},
'ananas': {
'values': ['ananas1', 'ananas2', 'ananas3'],
'labelToShow': 'My ananas'
},
};
因此,基本上,我需要從dataset具有未包含在fruits(欄位中key)中的鍵的專案中洗掉,然后我需要添加欄位labelToShow。
我不知道該怎么做。
我開始從資料集中洗掉專案:
dataset.removeWhere((k, v) => k != 'pear' && k != 'ananas');
但我不喜歡,我想回圈遍歷fruits.
有人可以幫幫我嗎?
非常感謝
uj5u.com熱心網友回復:
我不會從中洗掉任何東西dataset。相反,我會從頭開始構建一個新地圖,只包含你想要的資料。
怎么樣:
Map<String, Map<String, List<String>>> result = {
for (var fruit in fruits)
fruit["key"]: {
"values": dataset[fruit["key"]],
"labelToShow": fruit["labelToShow"]
}
};
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/430810.html
