map.entries 를 이용하여 iterable 객체로 변환하여 List 객체의 내장함수를 사용하여 전처리 함.
void main() {
Map map = {'Apple':'사과','Banana':'바나나','Kiwi':'키위',};
print(map.keys); # Iterable 객체임
print(map.values); # Iterable 객체임
print(map.keys.toList()); # List 객체임
print(map.values.toList()); # List 객체임
print('---------- 01 ----------');
print('map.keys is Iterable');
print(map.keys is Iterable); # true
print("map.keys.toList() is List");
print(map.keys.toList() is List); # true
print('---------- 02 ----------');
// final tmp = map.entries;
// print(tmp is Iterable); -> true
//Mapping - map => (entry)를 이용해서 키/값을 추출가능
final newIterable = map.entries.map((entry){
// print(entry.key);
// print(entry.value);
return (entry.key +'|'+ entry.value);
});
print(newIterable);
print('---------- 03 ----------');
print("newIterable is Iterable");
print(newIterable is Iterable); # true
print('---------- 04 ----------');
//foreach, reduce, fold
map.entries.forEach((entry){
final key = entry.key;
final value = entry.value;
print('"$key" 는 한글로 "$value" 입니다.');
});
print('---------- 05 ----------');
final num total = map.entries.fold(0, (total, entry) {
return total + entry.key.length;
});
print(total);
print('---------- 06 ----------');
// 리스트에서 인덱스를 가져오는 방법
List <int> nums = [10,20,30,40,50];
final newIterable2 = nums.map((item){
return 'value is $item.';
});
print(newIterable2);
print('---------- 07 ----------');
final newIterable3 = nums.asMap().entries.map((entry){
final index = entry.key;
final value = entry.value;
return ('{$index:$value}');
});
print(newIterable3.toList());
print('---------- 08 ----------');
newIterable3.forEach((value){
print(value);
});
}
--------------------------------------------[result]
(Apple, Banana, Kiwi)
(사과, 바나나, 키위)
[Apple, Banana, Kiwi]
[사과, 바나나, 키위]
---------- 01 ----------
map.keys is Iterable
true
map.keys.toList() is List
true
---------- 02 ----------
true
(Apple|사과, Banana|바나나, Kiwi|키위)
---------- 03 ----------
newIterable is Iterable
true
---------- 04 ----------
"Apple" 는 한글로 "사과" 입니다.
"Banana" 는 한글로 "바나나" 입니다.
"Kiwi" 는 한글로 "키위" 입니다.
---------- 05 ----------
15
---------- 06 ----------
(value is 10., value is 20., value is 30., value is 40., value is 50.)
---------- 07 ----------
[{0:10}, {1:20}, {2:30}, {3:40}, {4:50}]
---------- 08 ----------
{0:10}
{1:20}
{2:30}
{3:40}
{4:50}
'Dart' 카테고리의 다른 글
[Dart] List 고급 - forEach, map, fold, reduce (0) | 2021.05.28 |
---|---|
[Dart] Class - Cascade (0) | 2021.05.27 |
[Dart] Class - interface (0) | 2021.05.27 |
[Dart] Class - super, this (0) | 2021.05.27 |
[Dart] Class - Static (0) | 2021.05.27 |